@galacean/engine-loader 1.1.2 → 1.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.js +728 -598
- package/dist/main.js.map +1 -1
- package/dist/miniprogram.js +728 -598
- package/dist/module.js +730 -601
- package/dist/module.js.map +1 -1
- package/package.json +5 -5
- package/types/GLTFContentRestorer.d.ts +7 -6
- package/types/gltf/GLTFUtils.d.ts +2 -7
- package/types/gltf/parser/GLTFMeshParser.d.ts +11 -6
- package/types/gltf/parser/GLTFParser.d.ts +1 -1
- package/types/gltf/parser/GLTFParserContext.d.ts +7 -6
- package/types/gltf/parser/index.d.ts +2 -1
- package/types/ktx2/KTX2Loader.d.ts +1 -1
- package/types/resource-deserialize/index.d.ts +8 -8
- package/types/resource-deserialize/resources/mesh/MeshDecoder.d.ts +1 -1
- package/types/resource-deserialize/resources/texture2D/TextureDecoder.d.ts +1 -1
- package/types/resource-deserialize/utils/Decorator.d.ts +1 -1
- package/types/PrimitiveMeshLoader.d.ts +0 -1
- package/types/gltf/GLTFParser.d.ts +0 -9
- package/types/gltf/GLTFPipeline.d.ts +0 -23
- package/types/gltf/GLTFUtil.d.ts +0 -53
- package/types/gltf/Schema.d.ts +0 -814
- package/types/gltf/extensions/EXT_meshopt_compression.d.ts +0 -13
- package/types/gltf/extensions/ExtensionParser.d.ts +0 -8
- package/types/gltf/extensions/KHR_materials_anisotropy.d.ts +0 -1
- package/types/gltf/extensions/MeshoptDecoder.d.ts +0 -8
- package/types/gltf/extensions/Schema.d.ts +0 -142
- package/types/gltf/parser/AnimationParser.d.ts +0 -7
- package/types/gltf/parser/BufferParser.d.ts +0 -7
- package/types/gltf/parser/EntityParser.d.ts +0 -9
- package/types/gltf/parser/MaterialParser.d.ts +0 -8
- package/types/gltf/parser/MeshParser.d.ts +0 -13
- package/types/gltf/parser/Parser.d.ts +0 -21
- package/types/gltf/parser/ParserContext.d.ts +0 -46
- package/types/gltf/parser/SceneParser.d.ts +0 -11
- package/types/gltf/parser/SkinParser.d.ts +0 -6
- package/types/gltf/parser/TextureParser.d.ts +0 -8
- package/types/gltf/parser/Validator.d.ts +0 -5
- package/types/ktx2/BinomialLLCTranscoder/BinomialLLCTranscoder.d.ts +0 -13
- package/types/ktx2/BinomialLLCTranscoder/TranscodeWorkerCode.d.ts +0 -33
- package/types/ktx2/KhronosTranscoder/KhronosTranscoder.d.ts +0 -17
- package/types/ktx2/KhronosTranscoder/TranscoderWorkerCode.d.ts +0 -34
- package/types/ktx2/TranscodeResult.d.ts +0 -10
- package/types/ktx2/constants.d.ts +0 -7
- package/types/ktx2/zstddec.d.ts +0 -62
- package/types/resource-deserialize/resources/parser/HierarchyParser.d.ts +0 -36
- package/types/resource-deserialize/resources/parser/ParserContext.d.ts +0 -29
- package/types/resource-deserialize/resources/prefab/PrefabDesign.d.ts +0 -70
- package/types/resource-deserialize/resources/prefab/PrefabParser.d.ts +0 -14
- package/types/resource-deserialize/resources/prefab/PrefabParserContext.d.ts +0 -5
- package/types/resource-deserialize/resources/prefab/ReflectionParser.d.ts +0 -14
package/dist/module.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Utils,
|
|
2
|
-
import {
|
|
1
|
+
import { Utils, Transform, Animator, DirectLight, Camera, MeshRenderer, ParticleRenderer, PointLight, SpotLight, Script, SpriteMask, SpriteRenderer, TextRenderer, AnimationClip, AnimationEvent, AnimationRefCurve, Keyframe, AnimationQuaternionCurve, AnimationColorCurve, AnimationVector4Curve, AnimationVector3Curve, AnimationVector2Curve, AnimationFloatArrayCurve, AnimationArrayCurve, AnimationFloatCurve, ModelMesh, BlendShape, Loader, Entity, Texture2D, resourceLoader, AssetPromise, ContentRestorer, Scene, AssetType, AnimatorController, AnimatorControllerLayer, AnimatorStateMachine, AnimatorStateTransition, AmbientLight, DiffuseMode, TextureCube, TextureFilterMode, TextureCubeFace, Font, ReferResource, IndexFormat, VertexElementFormat, GLCapabilityType, Logger, TextureFormat, request, InterpolationType, SkinnedMeshRenderer, PBRMaterial, BlinnPhongMaterial, PBRSpecularMaterial, TextureCoordinate, RenderFace, VertexElement, Buffer, BufferBindFlag, BufferUsage, Skin, TextureWrapMode as TextureWrapMode$1, Material, Shader, SpriteAtlas, Sprite, BackgroundMode, UnlitMaterial } from '@galacean/engine-core';
|
|
2
|
+
import { Quaternion, Vector4, Color, Vector3, Vector2, SphericalHarmonics3, MathUtil, BoundingBox, Matrix, Rect } from '@galacean/engine-math';
|
|
3
3
|
import { GLCompressedTextureInternalFormat } from '@galacean/engine-rhi-webgl';
|
|
4
4
|
import { DRACODecoder } from '@galacean/engine-draco';
|
|
5
5
|
|
|
@@ -280,11 +280,201 @@ var FileHeader = /*#__PURE__*/ function() {
|
|
|
280
280
|
return FileHeader;
|
|
281
281
|
}();
|
|
282
282
|
|
|
283
|
+
var ComponentMap = {
|
|
284
|
+
Transform: Transform,
|
|
285
|
+
Animator: Animator,
|
|
286
|
+
DirectLight: DirectLight,
|
|
287
|
+
Camera: Camera,
|
|
288
|
+
MeshRenderer: MeshRenderer,
|
|
289
|
+
ParticleRenderer: ParticleRenderer,
|
|
290
|
+
PointLight: PointLight,
|
|
291
|
+
SpotLight: SpotLight,
|
|
292
|
+
Script: Script,
|
|
293
|
+
SpriteMask: SpriteMask,
|
|
294
|
+
SpriteRenderer: SpriteRenderer,
|
|
295
|
+
TextRenderer: TextRenderer
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
var InterpolableValueType;
|
|
299
|
+
(function(InterpolableValueType) {
|
|
300
|
+
InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
|
|
301
|
+
InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
|
|
302
|
+
InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
|
|
303
|
+
InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
|
|
304
|
+
InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
|
|
305
|
+
InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
|
|
306
|
+
InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
|
|
307
|
+
InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
|
|
308
|
+
InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
|
|
309
|
+
InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
|
|
310
|
+
InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
|
|
311
|
+
})(InterpolableValueType || (InterpolableValueType = {}));
|
|
312
|
+
var AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
313
|
+
function AnimationClipDecoder() {}
|
|
314
|
+
AnimationClipDecoder.decode = function decode(engine, bufferReader) {
|
|
315
|
+
return new Promise(function(resolve) {
|
|
316
|
+
var name = bufferReader.nextStr();
|
|
317
|
+
var clip = new AnimationClip(name);
|
|
318
|
+
var eventsLen = bufferReader.nextUint16();
|
|
319
|
+
for(var i = 0; i < eventsLen; ++i){
|
|
320
|
+
var event = new AnimationEvent();
|
|
321
|
+
event.time = bufferReader.nextFloat32();
|
|
322
|
+
event.functionName = bufferReader.nextStr();
|
|
323
|
+
event.parameter = JSON.parse(bufferReader.nextStr()).val;
|
|
324
|
+
clip.addEvent(event);
|
|
325
|
+
}
|
|
326
|
+
var curveBindingsLen = bufferReader.nextUint16();
|
|
327
|
+
for(var i1 = 0; i1 < curveBindingsLen; ++i1){
|
|
328
|
+
var relativePath = bufferReader.nextStr();
|
|
329
|
+
var componentStr = bufferReader.nextStr();
|
|
330
|
+
var componentType = ComponentMap[componentStr];
|
|
331
|
+
var property = bufferReader.nextStr();
|
|
332
|
+
var curve = void 0;
|
|
333
|
+
var interpolation = bufferReader.nextUint8();
|
|
334
|
+
var keysLen = bufferReader.nextUint16();
|
|
335
|
+
var curveType = bufferReader.nextStr();
|
|
336
|
+
switch(curveType){
|
|
337
|
+
case "AnimationFloatCurve":
|
|
338
|
+
{
|
|
339
|
+
curve = new AnimationFloatCurve();
|
|
340
|
+
curve.interpolation = interpolation;
|
|
341
|
+
for(var j = 0; j < keysLen; ++j){
|
|
342
|
+
var keyframe = new Keyframe();
|
|
343
|
+
keyframe.time = bufferReader.nextFloat32();
|
|
344
|
+
keyframe.value = bufferReader.nextFloat32();
|
|
345
|
+
keyframe.inTangent = bufferReader.nextFloat32();
|
|
346
|
+
keyframe.outTangent = bufferReader.nextFloat32();
|
|
347
|
+
curve.addKey(keyframe);
|
|
348
|
+
}
|
|
349
|
+
break;
|
|
350
|
+
}
|
|
351
|
+
case "AnimationArrayCurve":
|
|
352
|
+
{
|
|
353
|
+
curve = new AnimationArrayCurve();
|
|
354
|
+
curve.interpolation = interpolation;
|
|
355
|
+
for(var j1 = 0; j1 < keysLen; ++j1){
|
|
356
|
+
var keyframe1 = new Keyframe();
|
|
357
|
+
keyframe1.time = bufferReader.nextFloat32();
|
|
358
|
+
var len = bufferReader.nextUint16();
|
|
359
|
+
keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
|
|
360
|
+
keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
361
|
+
keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
362
|
+
curve.addKey(keyframe1);
|
|
363
|
+
}
|
|
364
|
+
break;
|
|
365
|
+
}
|
|
366
|
+
case "AnimationFloatArrayCurve":
|
|
367
|
+
{
|
|
368
|
+
curve = new AnimationFloatArrayCurve();
|
|
369
|
+
curve.interpolation = interpolation;
|
|
370
|
+
for(var j2 = 0; j2 < keysLen; ++j2){
|
|
371
|
+
var keyframe2 = new Keyframe();
|
|
372
|
+
keyframe2.time = bufferReader.nextFloat32();
|
|
373
|
+
var len1 = bufferReader.nextUint16();
|
|
374
|
+
keyframe2.value = bufferReader.nextFloat32Array(len1);
|
|
375
|
+
keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
376
|
+
keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
377
|
+
curve.addKey(keyframe2);
|
|
378
|
+
}
|
|
379
|
+
break;
|
|
380
|
+
}
|
|
381
|
+
case "AnimationVector2Curve":
|
|
382
|
+
{
|
|
383
|
+
curve = new AnimationVector2Curve();
|
|
384
|
+
curve.interpolation = interpolation;
|
|
385
|
+
for(var j3 = 0; j3 < keysLen; ++j3){
|
|
386
|
+
var keyframe3 = new Keyframe();
|
|
387
|
+
keyframe3.time = bufferReader.nextFloat32();
|
|
388
|
+
keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
389
|
+
keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
390
|
+
keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
391
|
+
curve.addKey(keyframe3);
|
|
392
|
+
}
|
|
393
|
+
break;
|
|
394
|
+
}
|
|
395
|
+
case "AnimationVector3Curve":
|
|
396
|
+
{
|
|
397
|
+
curve = new AnimationVector3Curve();
|
|
398
|
+
curve.interpolation = interpolation;
|
|
399
|
+
for(var j4 = 0; j4 < keysLen; ++j4){
|
|
400
|
+
var keyframe4 = new Keyframe();
|
|
401
|
+
keyframe4.time = bufferReader.nextFloat32();
|
|
402
|
+
keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
403
|
+
keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
404
|
+
keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
405
|
+
curve.addKey(keyframe4);
|
|
406
|
+
}
|
|
407
|
+
break;
|
|
408
|
+
}
|
|
409
|
+
case "AnimationVector4Curve":
|
|
410
|
+
{
|
|
411
|
+
curve = new AnimationVector4Curve();
|
|
412
|
+
curve.interpolation = interpolation;
|
|
413
|
+
var keyframe5 = new Keyframe();
|
|
414
|
+
keyframe5.time = bufferReader.nextFloat32();
|
|
415
|
+
keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
416
|
+
keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
417
|
+
keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
418
|
+
curve.addKey(keyframe5);
|
|
419
|
+
break;
|
|
420
|
+
}
|
|
421
|
+
case "AnimationColorCurve":
|
|
422
|
+
{
|
|
423
|
+
curve = new AnimationColorCurve();
|
|
424
|
+
curve.interpolation = interpolation;
|
|
425
|
+
for(var j5 = 0; j5 < keysLen; ++j5){
|
|
426
|
+
var keyframe6 = new Keyframe();
|
|
427
|
+
keyframe6.time = bufferReader.nextFloat32();
|
|
428
|
+
keyframe6.value = new Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
429
|
+
keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
430
|
+
keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
431
|
+
curve.addKey(keyframe6);
|
|
432
|
+
}
|
|
433
|
+
break;
|
|
434
|
+
}
|
|
435
|
+
case "AnimationQuaternionCurve":
|
|
436
|
+
{
|
|
437
|
+
curve = new AnimationQuaternionCurve();
|
|
438
|
+
curve.interpolation = interpolation;
|
|
439
|
+
for(var j6 = 0; j6 < keysLen; ++j6){
|
|
440
|
+
var keyframe7 = new Keyframe();
|
|
441
|
+
keyframe7.time = bufferReader.nextFloat32();
|
|
442
|
+
keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
443
|
+
keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
444
|
+
keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
445
|
+
curve.addKey(keyframe7);
|
|
446
|
+
}
|
|
447
|
+
break;
|
|
448
|
+
}
|
|
449
|
+
case "AnimationRefCurve":
|
|
450
|
+
{
|
|
451
|
+
curve = new AnimationRefCurve();
|
|
452
|
+
curve.interpolation = interpolation;
|
|
453
|
+
for(var j7 = 0; j7 < keysLen; ++j7){
|
|
454
|
+
var keyframe8 = new Keyframe();
|
|
455
|
+
keyframe8.time = bufferReader.nextFloat32();
|
|
456
|
+
keyframe8.value = JSON.parse(bufferReader.nextStr());
|
|
457
|
+
curve.addKey(keyframe8);
|
|
458
|
+
}
|
|
459
|
+
break;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
clip.addCurveBinding(relativePath, componentType, property, curve);
|
|
463
|
+
}
|
|
464
|
+
resolve(clip);
|
|
465
|
+
});
|
|
466
|
+
};
|
|
467
|
+
return AnimationClipDecoder;
|
|
468
|
+
}();
|
|
469
|
+
AnimationClipDecoder = __decorate([
|
|
470
|
+
decoder("AnimationClip")
|
|
471
|
+
], AnimationClipDecoder);
|
|
472
|
+
|
|
283
473
|
var MeshDecoder = /*#__PURE__*/ function() {
|
|
284
474
|
function MeshDecoder() {}
|
|
285
|
-
MeshDecoder.decode = function decode(engine, bufferReader) {
|
|
475
|
+
MeshDecoder.decode = function decode(engine, bufferReader, restoredMesh) {
|
|
286
476
|
return new Promise(function(resolve) {
|
|
287
|
-
var modelMesh = new ModelMesh(engine);
|
|
477
|
+
var modelMesh = restoredMesh || new ModelMesh(engine);
|
|
288
478
|
var jsonDataString = bufferReader.nextStr();
|
|
289
479
|
var encodedMeshData = JSON.parse(jsonDataString);
|
|
290
480
|
// @ts-ignore Vector3 is not compatible with {x: number, y: number, z: number}.
|
|
@@ -414,80 +604,22 @@ function float32ArrayToVector2(float32Array, vertexCount) {
|
|
|
414
604
|
return array;
|
|
415
605
|
}
|
|
416
606
|
|
|
417
|
-
var
|
|
418
|
-
function
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
var
|
|
423
|
-
var
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
var width = bufferReader.nextUint16();
|
|
429
|
-
var height = bufferReader.nextUint16();
|
|
430
|
-
var isPixelBuffer = bufferReader.nextUint8();
|
|
431
|
-
var mipCount = bufferReader.nextUint8();
|
|
432
|
-
var imagesData = bufferReader.nextImagesData(mipCount);
|
|
433
|
-
var texture2D = new Texture2D(engine, width, height, format, mipmap);
|
|
434
|
-
texture2D.filterMode = filterMode;
|
|
435
|
-
texture2D.anisoLevel = anisoLevel;
|
|
436
|
-
texture2D.wrapModeU = wrapModeU;
|
|
437
|
-
texture2D.wrapModeV = wrapModeV;
|
|
438
|
-
if (isPixelBuffer) {
|
|
439
|
-
var pixelBuffer = imagesData[0];
|
|
440
|
-
texture2D.setPixelBuffer(pixelBuffer);
|
|
441
|
-
if (mipmap) {
|
|
442
|
-
texture2D.generateMipmaps();
|
|
443
|
-
for(var i = 1; i < mipCount; i++){
|
|
444
|
-
var pixelBuffer1 = imagesData[i];
|
|
445
|
-
texture2D.setPixelBuffer(pixelBuffer1, i);
|
|
446
|
-
}
|
|
447
|
-
}
|
|
448
|
-
// @ts-ignore
|
|
449
|
-
engine.resourceManager._objectPool[objectId] = texture2D;
|
|
450
|
-
resolve(texture2D);
|
|
451
|
-
} else {
|
|
452
|
-
var blob = new window.Blob([
|
|
453
|
-
imagesData[0]
|
|
454
|
-
]);
|
|
455
|
-
var img = new Image();
|
|
456
|
-
img.onload = function() {
|
|
457
|
-
texture2D.setImageSource(img);
|
|
458
|
-
var completedCount = 0;
|
|
459
|
-
var onComplete = function() {
|
|
460
|
-
completedCount++;
|
|
461
|
-
if (completedCount >= mipCount) {
|
|
462
|
-
resolve(texture2D);
|
|
463
|
-
}
|
|
464
|
-
};
|
|
465
|
-
onComplete();
|
|
466
|
-
if (mipmap) {
|
|
467
|
-
var _loop = function(i) {
|
|
468
|
-
var blob = new window.Blob([
|
|
469
|
-
imagesData[i]
|
|
470
|
-
]);
|
|
471
|
-
var img = new Image();
|
|
472
|
-
img.onload = function() {
|
|
473
|
-
texture2D.setImageSource(img, i);
|
|
474
|
-
onComplete();
|
|
475
|
-
};
|
|
476
|
-
img.src = URL.createObjectURL(blob);
|
|
477
|
-
};
|
|
478
|
-
texture2D.generateMipmaps();
|
|
479
|
-
for(var i = 1; i < mipCount; i++)_loop(i);
|
|
480
|
-
}
|
|
481
|
-
};
|
|
482
|
-
img.src = URL.createObjectURL(blob);
|
|
607
|
+
var PrefabParser = /*#__PURE__*/ function() {
|
|
608
|
+
function PrefabParser() {}
|
|
609
|
+
PrefabParser.parseChildren = function parseChildren(entitiesConfig, entities, parentId) {
|
|
610
|
+
var children = entitiesConfig.get(parentId).children;
|
|
611
|
+
if (children && children.length > 0) {
|
|
612
|
+
var parent = entities.get(parentId);
|
|
613
|
+
for(var i = 0; i < children.length; i++){
|
|
614
|
+
var childId = children[i];
|
|
615
|
+
var entity = entities.get(childId);
|
|
616
|
+
parent.addChild(entity);
|
|
617
|
+
this.parseChildren(entitiesConfig, entities, childId);
|
|
483
618
|
}
|
|
484
|
-
}
|
|
619
|
+
}
|
|
485
620
|
};
|
|
486
|
-
return
|
|
621
|
+
return PrefabParser;
|
|
487
622
|
}();
|
|
488
|
-
Texture2DDecoder = __decorate([
|
|
489
|
-
decoder("Texture2D")
|
|
490
|
-
], Texture2DDecoder);
|
|
491
623
|
|
|
492
624
|
function _is_native_reflect_construct() {
|
|
493
625
|
if (typeof Reflect === "undefined" || !Reflect.construct) return false;
|
|
@@ -669,218 +801,148 @@ var ReflectionParser = /*#__PURE__*/ function() {
|
|
|
669
801
|
ReflectionParser.customParseComponentHandles = new Map();
|
|
670
802
|
})();
|
|
671
803
|
|
|
672
|
-
var
|
|
673
|
-
function
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
var
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
};
|
|
703
|
-
|
|
704
|
-
var InterpolableValueType;
|
|
705
|
-
(function(InterpolableValueType) {
|
|
706
|
-
InterpolableValueType[InterpolableValueType["Float"] = 0] = "Float";
|
|
707
|
-
InterpolableValueType[InterpolableValueType["FloatArray"] = 1] = "FloatArray";
|
|
708
|
-
InterpolableValueType[InterpolableValueType["Vector2"] = 2] = "Vector2";
|
|
709
|
-
InterpolableValueType[InterpolableValueType["Vector3"] = 3] = "Vector3";
|
|
710
|
-
InterpolableValueType[InterpolableValueType["Vector4"] = 4] = "Vector4";
|
|
711
|
-
InterpolableValueType[InterpolableValueType["Quaternion"] = 5] = "Quaternion";
|
|
712
|
-
InterpolableValueType[InterpolableValueType["Color"] = 6] = "Color";
|
|
713
|
-
InterpolableValueType[InterpolableValueType["Array"] = 7] = "Array";
|
|
714
|
-
InterpolableValueType[InterpolableValueType["Boolean"] = 8] = "Boolean";
|
|
715
|
-
InterpolableValueType[InterpolableValueType["Rect"] = 9] = "Rect";
|
|
716
|
-
InterpolableValueType[InterpolableValueType["ReferResource"] = 10] = "ReferResource";
|
|
717
|
-
})(InterpolableValueType || (InterpolableValueType = {}));
|
|
718
|
-
var AnimationClipDecoder = /*#__PURE__*/ function() {
|
|
719
|
-
function AnimationClipDecoder() {}
|
|
720
|
-
AnimationClipDecoder.decode = function decode(engine, bufferReader) {
|
|
721
|
-
return new Promise(function(resolve) {
|
|
722
|
-
var name = bufferReader.nextStr();
|
|
723
|
-
var clip = new AnimationClip(name);
|
|
724
|
-
var eventsLen = bufferReader.nextUint16();
|
|
725
|
-
for(var i = 0; i < eventsLen; ++i){
|
|
726
|
-
var event = new AnimationEvent();
|
|
727
|
-
event.time = bufferReader.nextFloat32();
|
|
728
|
-
event.functionName = bufferReader.nextStr();
|
|
729
|
-
event.parameter = JSON.parse(bufferReader.nextStr()).val;
|
|
730
|
-
clip.addEvent(event);
|
|
731
|
-
}
|
|
732
|
-
var curveBindingsLen = bufferReader.nextUint16();
|
|
733
|
-
for(var i1 = 0; i1 < curveBindingsLen; ++i1){
|
|
734
|
-
var relativePath = bufferReader.nextStr();
|
|
735
|
-
var componentStr = bufferReader.nextStr();
|
|
736
|
-
var componentType = ComponentMap[componentStr];
|
|
737
|
-
var property = bufferReader.nextStr();
|
|
738
|
-
var curve = void 0;
|
|
739
|
-
var interpolation = bufferReader.nextUint8();
|
|
740
|
-
var keysLen = bufferReader.nextUint16();
|
|
741
|
-
var curveType = bufferReader.nextStr();
|
|
742
|
-
switch(curveType){
|
|
743
|
-
case "AnimationFloatCurve":
|
|
744
|
-
{
|
|
745
|
-
curve = new AnimationFloatCurve();
|
|
746
|
-
curve.interpolation = interpolation;
|
|
747
|
-
for(var j = 0; j < keysLen; ++j){
|
|
748
|
-
var keyframe = new Keyframe();
|
|
749
|
-
keyframe.time = bufferReader.nextFloat32();
|
|
750
|
-
keyframe.value = bufferReader.nextFloat32();
|
|
751
|
-
keyframe.inTangent = bufferReader.nextFloat32();
|
|
752
|
-
keyframe.outTangent = bufferReader.nextFloat32();
|
|
753
|
-
curve.addKey(keyframe);
|
|
754
|
-
}
|
|
755
|
-
break;
|
|
756
|
-
}
|
|
757
|
-
case "AnimationArrayCurve":
|
|
758
|
-
{
|
|
759
|
-
curve = new AnimationArrayCurve();
|
|
760
|
-
curve.interpolation = interpolation;
|
|
761
|
-
for(var j1 = 0; j1 < keysLen; ++j1){
|
|
762
|
-
var keyframe1 = new Keyframe();
|
|
763
|
-
keyframe1.time = bufferReader.nextFloat32();
|
|
764
|
-
var len = bufferReader.nextUint16();
|
|
765
|
-
keyframe1.value = Array.from(bufferReader.nextFloat32Array(len));
|
|
766
|
-
keyframe1.inTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
767
|
-
keyframe1.outTangent = Array.from(bufferReader.nextFloat32Array(len));
|
|
768
|
-
curve.addKey(keyframe1);
|
|
769
|
-
}
|
|
770
|
-
break;
|
|
771
|
-
}
|
|
772
|
-
case "AnimationFloatArrayCurve":
|
|
773
|
-
{
|
|
774
|
-
curve = new AnimationFloatArrayCurve();
|
|
775
|
-
curve.interpolation = interpolation;
|
|
776
|
-
for(var j2 = 0; j2 < keysLen; ++j2){
|
|
777
|
-
var keyframe2 = new Keyframe();
|
|
778
|
-
keyframe2.time = bufferReader.nextFloat32();
|
|
779
|
-
var len1 = bufferReader.nextUint16();
|
|
780
|
-
keyframe2.value = bufferReader.nextFloat32Array(len1);
|
|
781
|
-
keyframe2.inTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
782
|
-
keyframe2.outTangent = Array.from(bufferReader.nextFloat32Array(len1));
|
|
783
|
-
curve.addKey(keyframe2);
|
|
784
|
-
}
|
|
785
|
-
break;
|
|
786
|
-
}
|
|
787
|
-
case "AnimationVector2Curve":
|
|
788
|
-
{
|
|
789
|
-
curve = new AnimationVector2Curve();
|
|
790
|
-
curve.interpolation = interpolation;
|
|
791
|
-
for(var j3 = 0; j3 < keysLen; ++j3){
|
|
792
|
-
var keyframe3 = new Keyframe();
|
|
793
|
-
keyframe3.time = bufferReader.nextFloat32();
|
|
794
|
-
keyframe3.value = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
795
|
-
keyframe3.inTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
796
|
-
keyframe3.outTangent = new Vector2(bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
797
|
-
curve.addKey(keyframe3);
|
|
798
|
-
}
|
|
799
|
-
break;
|
|
800
|
-
}
|
|
801
|
-
case "AnimationVector3Curve":
|
|
802
|
-
{
|
|
803
|
-
curve = new AnimationVector3Curve();
|
|
804
|
-
curve.interpolation = interpolation;
|
|
805
|
-
for(var j4 = 0; j4 < keysLen; ++j4){
|
|
806
|
-
var keyframe4 = new Keyframe();
|
|
807
|
-
keyframe4.time = bufferReader.nextFloat32();
|
|
808
|
-
keyframe4.value = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
809
|
-
keyframe4.inTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
810
|
-
keyframe4.outTangent = new Vector3(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
811
|
-
curve.addKey(keyframe4);
|
|
812
|
-
}
|
|
813
|
-
break;
|
|
814
|
-
}
|
|
815
|
-
case "AnimationVector4Curve":
|
|
816
|
-
{
|
|
817
|
-
curve = new AnimationVector4Curve();
|
|
818
|
-
curve.interpolation = interpolation;
|
|
819
|
-
var keyframe5 = new Keyframe();
|
|
820
|
-
keyframe5.time = bufferReader.nextFloat32();
|
|
821
|
-
keyframe5.value = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
822
|
-
keyframe5.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
823
|
-
keyframe5.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
824
|
-
curve.addKey(keyframe5);
|
|
825
|
-
break;
|
|
826
|
-
}
|
|
827
|
-
case "AnimationColorCurve":
|
|
828
|
-
{
|
|
829
|
-
curve = new AnimationColorCurve();
|
|
830
|
-
curve.interpolation = interpolation;
|
|
831
|
-
for(var j5 = 0; j5 < keysLen; ++j5){
|
|
832
|
-
var keyframe6 = new Keyframe();
|
|
833
|
-
keyframe6.time = bufferReader.nextFloat32();
|
|
834
|
-
keyframe6.value = new Color(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
835
|
-
keyframe6.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
836
|
-
keyframe6.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
837
|
-
curve.addKey(keyframe6);
|
|
838
|
-
}
|
|
839
|
-
break;
|
|
840
|
-
}
|
|
841
|
-
case "AnimationQuaternionCurve":
|
|
842
|
-
{
|
|
843
|
-
curve = new AnimationQuaternionCurve();
|
|
844
|
-
curve.interpolation = interpolation;
|
|
845
|
-
for(var j6 = 0; j6 < keysLen; ++j6){
|
|
846
|
-
var keyframe7 = new Keyframe();
|
|
847
|
-
keyframe7.time = bufferReader.nextFloat32();
|
|
848
|
-
keyframe7.value = new Quaternion(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
849
|
-
keyframe7.inTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
850
|
-
keyframe7.outTangent = new Vector4(bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32(), bufferReader.nextFloat32());
|
|
851
|
-
curve.addKey(keyframe7);
|
|
852
|
-
}
|
|
853
|
-
break;
|
|
854
|
-
}
|
|
855
|
-
case "AnimationRefCurve":
|
|
856
|
-
{
|
|
857
|
-
curve = new AnimationRefCurve();
|
|
858
|
-
curve.interpolation = interpolation;
|
|
859
|
-
for(var j7 = 0; j7 < keysLen; ++j7){
|
|
860
|
-
var keyframe8 = new Keyframe();
|
|
861
|
-
keyframe8.time = bufferReader.nextFloat32();
|
|
862
|
-
keyframe8.value = JSON.parse(bufferReader.nextStr());
|
|
863
|
-
curve.addKey(keyframe8);
|
|
864
|
-
}
|
|
865
|
-
break;
|
|
866
|
-
}
|
|
804
|
+
var Texture2DDecoder = /*#__PURE__*/ function() {
|
|
805
|
+
function Texture2DDecoder() {}
|
|
806
|
+
Texture2DDecoder.decode = function decode(engine, bufferReader, restoredTexture) {
|
|
807
|
+
return new Promise(function(resolve, reject) {
|
|
808
|
+
var objectId = bufferReader.nextStr();
|
|
809
|
+
var mipmap = !!bufferReader.nextUint8();
|
|
810
|
+
var filterMode = bufferReader.nextUint8();
|
|
811
|
+
var anisoLevel = bufferReader.nextUint8();
|
|
812
|
+
var wrapModeU = bufferReader.nextUint8();
|
|
813
|
+
var wrapModeV = bufferReader.nextUint8();
|
|
814
|
+
var format = bufferReader.nextUint8();
|
|
815
|
+
var width = bufferReader.nextUint16();
|
|
816
|
+
var height = bufferReader.nextUint16();
|
|
817
|
+
var isPixelBuffer = bufferReader.nextUint8();
|
|
818
|
+
var mipCount = bufferReader.nextUint8();
|
|
819
|
+
var imagesData = bufferReader.nextImagesData(mipCount);
|
|
820
|
+
var texture2D = restoredTexture || new Texture2D(engine, width, height, format, mipmap);
|
|
821
|
+
texture2D.filterMode = filterMode;
|
|
822
|
+
texture2D.anisoLevel = anisoLevel;
|
|
823
|
+
texture2D.wrapModeU = wrapModeU;
|
|
824
|
+
texture2D.wrapModeV = wrapModeV;
|
|
825
|
+
if (isPixelBuffer) {
|
|
826
|
+
var pixelBuffer = imagesData[0];
|
|
827
|
+
texture2D.setPixelBuffer(pixelBuffer);
|
|
828
|
+
if (mipmap) {
|
|
829
|
+
texture2D.generateMipmaps();
|
|
830
|
+
for(var i = 1; i < mipCount; i++){
|
|
831
|
+
var pixelBuffer1 = imagesData[i];
|
|
832
|
+
texture2D.setPixelBuffer(pixelBuffer1, i);
|
|
833
|
+
}
|
|
867
834
|
}
|
|
868
|
-
|
|
835
|
+
// @ts-ignore
|
|
836
|
+
engine.resourceManager._objectPool[objectId] = texture2D;
|
|
837
|
+
resolve(texture2D);
|
|
838
|
+
} else {
|
|
839
|
+
var blob = new window.Blob([
|
|
840
|
+
imagesData[0]
|
|
841
|
+
]);
|
|
842
|
+
var img = new Image();
|
|
843
|
+
img.onload = function() {
|
|
844
|
+
texture2D.setImageSource(img);
|
|
845
|
+
var completedCount = 0;
|
|
846
|
+
var onComplete = function() {
|
|
847
|
+
completedCount++;
|
|
848
|
+
if (completedCount >= mipCount) {
|
|
849
|
+
resolve(texture2D);
|
|
850
|
+
}
|
|
851
|
+
};
|
|
852
|
+
onComplete();
|
|
853
|
+
if (mipmap) {
|
|
854
|
+
var _loop = function(i) {
|
|
855
|
+
var blob = new window.Blob([
|
|
856
|
+
imagesData[i]
|
|
857
|
+
]);
|
|
858
|
+
var img = new Image();
|
|
859
|
+
img.onload = function() {
|
|
860
|
+
texture2D.setImageSource(img, i);
|
|
861
|
+
onComplete();
|
|
862
|
+
};
|
|
863
|
+
img.src = URL.createObjectURL(blob);
|
|
864
|
+
};
|
|
865
|
+
texture2D.generateMipmaps();
|
|
866
|
+
for(var i = 1; i < mipCount; i++)_loop(i);
|
|
867
|
+
}
|
|
868
|
+
};
|
|
869
|
+
img.src = URL.createObjectURL(blob);
|
|
869
870
|
}
|
|
870
|
-
resolve(clip);
|
|
871
871
|
});
|
|
872
872
|
};
|
|
873
|
-
return
|
|
873
|
+
return Texture2DDecoder;
|
|
874
874
|
}();
|
|
875
|
-
|
|
876
|
-
decoder("
|
|
877
|
-
],
|
|
875
|
+
Texture2DDecoder = __decorate([
|
|
876
|
+
decoder("Texture2D")
|
|
877
|
+
], Texture2DDecoder);
|
|
878
878
|
|
|
879
|
-
var
|
|
880
|
-
(
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
}
|
|
879
|
+
var EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
|
|
880
|
+
_inherits(EditorTextureLoader, Loader1);
|
|
881
|
+
function EditorTextureLoader() {
|
|
882
|
+
return Loader1.apply(this, arguments);
|
|
883
|
+
}
|
|
884
|
+
var _proto = EditorTextureLoader.prototype;
|
|
885
|
+
_proto.load = function load(item, resourceManager) {
|
|
886
|
+
var _this = this;
|
|
887
|
+
return new AssetPromise(function(resolve, reject) {
|
|
888
|
+
var request = _this.request;
|
|
889
|
+
request(item.url, _extends({}, item, {
|
|
890
|
+
type: "arraybuffer"
|
|
891
|
+
})).then(function(data) {
|
|
892
|
+
decode(data, resourceManager.engine).then(function(texture) {
|
|
893
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
894
|
+
_inherits(_class, ContentRestorer);
|
|
895
|
+
function _class() {
|
|
896
|
+
return ContentRestorer.apply(this, arguments);
|
|
897
|
+
}
|
|
898
|
+
var _proto = _class.prototype;
|
|
899
|
+
_proto.restoreContent = function restoreContent() {
|
|
900
|
+
return request(item.url, _extends({}, item, {
|
|
901
|
+
type: "arraybuffer"
|
|
902
|
+
})).then(function(data) {
|
|
903
|
+
return decode(data, resourceManager.engine, texture);
|
|
904
|
+
});
|
|
905
|
+
};
|
|
906
|
+
return _class;
|
|
907
|
+
}(ContentRestorer))(texture));
|
|
908
|
+
resolve(texture);
|
|
909
|
+
});
|
|
910
|
+
}).catch(reject);
|
|
911
|
+
});
|
|
912
|
+
};
|
|
913
|
+
return EditorTextureLoader;
|
|
914
|
+
}(Loader);
|
|
915
|
+
EditorTextureLoader = __decorate([
|
|
916
|
+
resourceLoader("EditorTexture2D", [
|
|
917
|
+
"prefab"
|
|
918
|
+
], true)
|
|
919
|
+
], EditorTextureLoader);
|
|
920
|
+
|
|
921
|
+
var MeshLoader$1 = /*#__PURE__*/ function(Loader1) {
|
|
922
|
+
_inherits(MeshLoader, Loader1);
|
|
923
|
+
function MeshLoader() {
|
|
924
|
+
return Loader1.apply(this, arguments);
|
|
925
|
+
}
|
|
926
|
+
var _proto = MeshLoader.prototype;
|
|
927
|
+
_proto.load = function load(item, resourceManager) {
|
|
928
|
+
var _this = this;
|
|
929
|
+
return new AssetPromise(function(resolve, reject) {
|
|
930
|
+
_this.request(item.url, {
|
|
931
|
+
type: "arraybuffer"
|
|
932
|
+
}).then(function(data) {
|
|
933
|
+
decode(data, resourceManager.engine).then(function(mesh) {
|
|
934
|
+
resolve(mesh);
|
|
935
|
+
});
|
|
936
|
+
}).catch(reject);
|
|
937
|
+
});
|
|
938
|
+
};
|
|
939
|
+
return MeshLoader;
|
|
940
|
+
}(Loader);
|
|
941
|
+
MeshLoader$1 = __decorate([
|
|
942
|
+
resourceLoader("Mesh", [
|
|
943
|
+
"prefab"
|
|
944
|
+
], true)
|
|
945
|
+
], MeshLoader$1);
|
|
884
946
|
|
|
885
947
|
function _array_like_to_array(arr, len) {
|
|
886
948
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -1037,57 +1099,11 @@ var SceneParserContext = /*#__PURE__*/ function() {
|
|
|
1037
1099
|
return SceneParser;
|
|
1038
1100
|
}();
|
|
1039
1101
|
|
|
1040
|
-
var
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
var _proto = MeshLoader.prototype;
|
|
1046
|
-
_proto.load = function load(item, resourceManager) {
|
|
1047
|
-
var _this = this;
|
|
1048
|
-
return new AssetPromise(function(resolve, reject) {
|
|
1049
|
-
_this.request(item.url, {
|
|
1050
|
-
type: "arraybuffer"
|
|
1051
|
-
}).then(function(data) {
|
|
1052
|
-
decode(data, resourceManager.engine).then(function(mesh) {
|
|
1053
|
-
resolve(mesh);
|
|
1054
|
-
});
|
|
1055
|
-
}).catch(reject);
|
|
1056
|
-
});
|
|
1057
|
-
};
|
|
1058
|
-
return MeshLoader;
|
|
1059
|
-
}(Loader);
|
|
1060
|
-
MeshLoader$1 = __decorate([
|
|
1061
|
-
resourceLoader("Mesh", [
|
|
1062
|
-
"prefab"
|
|
1063
|
-
], true)
|
|
1064
|
-
], MeshLoader$1);
|
|
1065
|
-
|
|
1066
|
-
var EditorTextureLoader = /*#__PURE__*/ function(Loader1) {
|
|
1067
|
-
_inherits(EditorTextureLoader, Loader1);
|
|
1068
|
-
function EditorTextureLoader() {
|
|
1069
|
-
return Loader1.apply(this, arguments);
|
|
1070
|
-
}
|
|
1071
|
-
var _proto = EditorTextureLoader.prototype;
|
|
1072
|
-
_proto.load = function load(item, resourceManager) {
|
|
1073
|
-
var _this = this;
|
|
1074
|
-
return new AssetPromise(function(resolve, reject) {
|
|
1075
|
-
_this.request(item.url, {
|
|
1076
|
-
type: "arraybuffer"
|
|
1077
|
-
}).then(function(data) {
|
|
1078
|
-
decode(data, resourceManager.engine).then(function(texture) {
|
|
1079
|
-
resolve(texture);
|
|
1080
|
-
});
|
|
1081
|
-
}).catch(reject);
|
|
1082
|
-
});
|
|
1083
|
-
};
|
|
1084
|
-
return EditorTextureLoader;
|
|
1085
|
-
}(Loader);
|
|
1086
|
-
EditorTextureLoader = __decorate([
|
|
1087
|
-
resourceLoader("EditorTexture2D", [
|
|
1088
|
-
"prefab"
|
|
1089
|
-
], true)
|
|
1090
|
-
], EditorTextureLoader);
|
|
1102
|
+
var SpecularMode;
|
|
1103
|
+
(function(SpecularMode) {
|
|
1104
|
+
SpecularMode["Sky"] = "Sky";
|
|
1105
|
+
SpecularMode["Custom"] = "Custom";
|
|
1106
|
+
})(SpecularMode || (SpecularMode = {}));
|
|
1091
1107
|
|
|
1092
1108
|
/**
|
|
1093
1109
|
* Decode engine binary resource.
|
|
@@ -1095,9 +1111,13 @@ EditorTextureLoader = __decorate([
|
|
|
1095
1111
|
* @param engine - engine
|
|
1096
1112
|
* @returns
|
|
1097
1113
|
*/ function decode(arrayBuffer, engine) {
|
|
1114
|
+
for(var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++){
|
|
1115
|
+
args[_key - 2] = arguments[_key];
|
|
1116
|
+
}
|
|
1117
|
+
var _decoderMap_header_type;
|
|
1098
1118
|
var header = FileHeader.decode(arrayBuffer);
|
|
1099
1119
|
var bufferReader = new BufferReader(new Uint8Array(arrayBuffer), header.headerLength, header.dataLength);
|
|
1100
|
-
return decoderMap[header.type].decode(engine, bufferReader).then(function(object) {
|
|
1120
|
+
return (_decoderMap_header_type = decoderMap[header.type]).decode.apply(_decoderMap_header_type, [].concat(engine, bufferReader, args)).then(function(object) {
|
|
1101
1121
|
object.name = header.name;
|
|
1102
1122
|
return object;
|
|
1103
1123
|
});
|
|
@@ -1265,39 +1285,42 @@ BufferLoader = __decorate([
|
|
|
1265
1285
|
], BufferLoader);
|
|
1266
1286
|
|
|
1267
1287
|
var EnvLoader = /*#__PURE__*/ function(Loader1) {
|
|
1268
|
-
_inherits(
|
|
1269
|
-
function
|
|
1288
|
+
_inherits(EnvLoader1, Loader1);
|
|
1289
|
+
function EnvLoader1() {
|
|
1270
1290
|
return Loader1.apply(this, arguments);
|
|
1271
1291
|
}
|
|
1272
|
-
var _proto =
|
|
1292
|
+
var _proto = EnvLoader1.prototype;
|
|
1273
1293
|
_proto.load = function load(item, resourceManager) {
|
|
1274
1294
|
var _this = this;
|
|
1275
1295
|
return new AssetPromise(function(resolve, reject) {
|
|
1276
|
-
|
|
1296
|
+
var engine = resourceManager.engine;
|
|
1297
|
+
var request = _this.request;
|
|
1298
|
+
request(item.url, _extends({}, item, {
|
|
1277
1299
|
type: "arraybuffer"
|
|
1278
|
-
}).then(function(arraybuffer) {
|
|
1279
|
-
var
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
var texture = new TextureCube(engine, size);
|
|
1285
|
-
texture.filterMode = TextureFilterMode.Trilinear;
|
|
1286
|
-
var mipmapCount = texture.mipmapCount;
|
|
1287
|
-
var offset = shByteLength + 2;
|
|
1288
|
-
for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
|
|
1289
|
-
var mipSize = size >> mipLevel;
|
|
1290
|
-
for(var face = 0; face < 6; face++){
|
|
1291
|
-
var dataSize = mipSize * mipSize * 4;
|
|
1292
|
-
var data = new Uint8Array(arraybuffer, offset, dataSize);
|
|
1293
|
-
offset += dataSize;
|
|
1294
|
-
texture.setPixelBuffer(TextureCubeFace.PositiveX + face, data, mipLevel);
|
|
1300
|
+
})).then(function(arraybuffer) {
|
|
1301
|
+
var texture = EnvLoader._setTextureByBuffer(engine, arraybuffer);
|
|
1302
|
+
engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
1303
|
+
_inherits(_class, ContentRestorer);
|
|
1304
|
+
function _class() {
|
|
1305
|
+
return ContentRestorer.apply(this, arguments);
|
|
1295
1306
|
}
|
|
1296
|
-
|
|
1307
|
+
var _proto = _class.prototype;
|
|
1308
|
+
_proto.restoreContent = function restoreContent() {
|
|
1309
|
+
return new AssetPromise(function(resolve, reject) {
|
|
1310
|
+
request(item.url, _extends({}, item, {
|
|
1311
|
+
type: "arraybuffer"
|
|
1312
|
+
})).then(function(buffer) {
|
|
1313
|
+
EnvLoader._setTextureByBuffer(engine, buffer, texture);
|
|
1314
|
+
resolve(texture);
|
|
1315
|
+
}).catch(reject);
|
|
1316
|
+
});
|
|
1317
|
+
};
|
|
1318
|
+
return _class;
|
|
1319
|
+
}(ContentRestorer))(texture));
|
|
1297
1320
|
var ambientLight = new AmbientLight(engine);
|
|
1298
1321
|
var sh = new SphericalHarmonics3();
|
|
1299
1322
|
ambientLight.diffuseMode = DiffuseMode.SphericalHarmonics;
|
|
1300
|
-
sh.copyFromArray(
|
|
1323
|
+
sh.copyFromArray(new Float32Array(arraybuffer, 0, 27));
|
|
1301
1324
|
ambientLight.diffuseSphericalHarmonics = sh;
|
|
1302
1325
|
ambientLight.specularTexture = texture;
|
|
1303
1326
|
ambientLight.specularTextureDecodeRGBM = true;
|
|
@@ -1307,7 +1330,28 @@ var EnvLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
1307
1330
|
});
|
|
1308
1331
|
});
|
|
1309
1332
|
};
|
|
1310
|
-
|
|
1333
|
+
/**
|
|
1334
|
+
* @internal
|
|
1335
|
+
*/ EnvLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
|
|
1336
|
+
var _this;
|
|
1337
|
+
var shByteLength = 27 * 4;
|
|
1338
|
+
var size = (_this = new Uint16Array(buffer, shByteLength, 1)) == null ? void 0 : _this[0];
|
|
1339
|
+
texture || (texture = new TextureCube(engine, size));
|
|
1340
|
+
texture.filterMode = TextureFilterMode.Trilinear;
|
|
1341
|
+
var mipmapCount = texture.mipmapCount;
|
|
1342
|
+
var offset = shByteLength + 2;
|
|
1343
|
+
for(var mipLevel = 0; mipLevel < mipmapCount; mipLevel++){
|
|
1344
|
+
var mipSize = size >> mipLevel;
|
|
1345
|
+
for(var face = 0; face < 6; face++){
|
|
1346
|
+
var dataSize = mipSize * mipSize * 4;
|
|
1347
|
+
var data = new Uint8Array(buffer, offset, dataSize);
|
|
1348
|
+
offset += dataSize;
|
|
1349
|
+
texture.setPixelBuffer(TextureCubeFace.PositiveX + face, data, mipLevel);
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
return texture;
|
|
1353
|
+
};
|
|
1354
|
+
return EnvLoader1;
|
|
1311
1355
|
}(Loader);
|
|
1312
1356
|
EnvLoader = __decorate([
|
|
1313
1357
|
resourceLoader(AssetType.Env, [
|
|
@@ -1595,7 +1639,7 @@ var TextureWrapMode;
|
|
|
1595
1639
|
var glTFItems = this.glTF[glTFSchemaMap[type]];
|
|
1596
1640
|
if (glTFItems && (index === undefined || glTFItems[index])) {
|
|
1597
1641
|
if (index === undefined) {
|
|
1598
|
-
resource = type ===
|
|
1642
|
+
resource = type === 8 ? glTFItems.map(function(_, index) {
|
|
1599
1643
|
return _this.get(type, index);
|
|
1600
1644
|
}) : Promise.all(glTFItems.map(function(_, index) {
|
|
1601
1645
|
return _this.get(type, index);
|
|
@@ -1617,11 +1661,11 @@ var TextureWrapMode;
|
|
|
1617
1661
|
_this.glTF = json;
|
|
1618
1662
|
return Promise.all([
|
|
1619
1663
|
_this.get(1),
|
|
1620
|
-
_this.get(4),
|
|
1621
1664
|
_this.get(5),
|
|
1622
1665
|
_this.get(6),
|
|
1623
|
-
_this.get(
|
|
1666
|
+
_this.get(7),
|
|
1624
1667
|
_this.get(9),
|
|
1668
|
+
_this.get(10),
|
|
1625
1669
|
_this.get(2)
|
|
1626
1670
|
]).then(function() {
|
|
1627
1671
|
var glTFResource = _this.glTFResource;
|
|
@@ -1659,7 +1703,7 @@ var TextureWrapMode;
|
|
|
1659
1703
|
var _this = this;
|
|
1660
1704
|
var glTFResourceKey = glTFResourceMap[type];
|
|
1661
1705
|
if (!glTFResourceKey) return;
|
|
1662
|
-
if (type ===
|
|
1706
|
+
if (type === 8) {
|
|
1663
1707
|
var _this_glTFResource, _glTFResourceKey;
|
|
1664
1708
|
((_this_glTFResource = this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = resource;
|
|
1665
1709
|
} else {
|
|
@@ -1667,7 +1711,7 @@ var TextureWrapMode;
|
|
|
1667
1711
|
resource.then(function(item) {
|
|
1668
1712
|
var _this_glTFResource, _glTFResourceKey;
|
|
1669
1713
|
((_this_glTFResource = _this.glTFResource)[_glTFResourceKey = glTFResourceKey] || (_this_glTFResource[_glTFResourceKey] = []))[index] = item;
|
|
1670
|
-
if (type ===
|
|
1714
|
+
if (type === 7) {
|
|
1671
1715
|
for(var i = 0, length = item.length; i < length; i++){
|
|
1672
1716
|
var mesh = item[i];
|
|
1673
1717
|
// @ts-ignore
|
|
@@ -1707,17 +1751,18 @@ var GLTFParserType;
|
|
|
1707
1751
|
GLTFParserType[GLTFParserType["Validator"] = 1] = "Validator";
|
|
1708
1752
|
GLTFParserType[GLTFParserType["Scene"] = 2] = "Scene";
|
|
1709
1753
|
GLTFParserType[GLTFParserType["Buffer"] = 3] = "Buffer";
|
|
1710
|
-
GLTFParserType[GLTFParserType["
|
|
1711
|
-
GLTFParserType[GLTFParserType["
|
|
1712
|
-
GLTFParserType[GLTFParserType["
|
|
1713
|
-
GLTFParserType[GLTFParserType["
|
|
1714
|
-
GLTFParserType[GLTFParserType["
|
|
1715
|
-
GLTFParserType[GLTFParserType["
|
|
1754
|
+
GLTFParserType[GLTFParserType["BufferView"] = 4] = "BufferView";
|
|
1755
|
+
GLTFParserType[GLTFParserType["Texture"] = 5] = "Texture";
|
|
1756
|
+
GLTFParserType[GLTFParserType["Material"] = 6] = "Material";
|
|
1757
|
+
GLTFParserType[GLTFParserType["Mesh"] = 7] = "Mesh";
|
|
1758
|
+
GLTFParserType[GLTFParserType["Entity"] = 8] = "Entity";
|
|
1759
|
+
GLTFParserType[GLTFParserType["Skin"] = 9] = "Skin";
|
|
1760
|
+
GLTFParserType[GLTFParserType["Animation"] = 10] = "Animation";
|
|
1716
1761
|
})(GLTFParserType || (GLTFParserType = {}));
|
|
1717
1762
|
var _obj;
|
|
1718
|
-
var glTFSchemaMap = (_obj = {}, _obj[2] = "scenes", _obj[3] = "buffers", _obj[
|
|
1763
|
+
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);
|
|
1719
1764
|
var _obj1;
|
|
1720
|
-
var glTFResourceMap = (_obj1 = {}, _obj1[2] = "sceneRoots", _obj1[
|
|
1765
|
+
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);
|
|
1721
1766
|
function registerGLTFParser(pipeline) {
|
|
1722
1767
|
return function(Parser) {
|
|
1723
1768
|
var parser = new Parser();
|
|
@@ -1822,113 +1867,68 @@ function registerGLTFParser(pipeline) {
|
|
|
1822
1867
|
};
|
|
1823
1868
|
GLTFUtils.getAccessorBuffer = function getAccessorBuffer(context, bufferViews, accessor) {
|
|
1824
1869
|
var componentType = accessor.componentType;
|
|
1825
|
-
var
|
|
1826
|
-
var
|
|
1827
|
-
var
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
var
|
|
1833
|
-
var
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1870
|
+
var TypedArray = GLTFUtils.getComponentType(componentType);
|
|
1871
|
+
var dataElementSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1872
|
+
var dataElementBytes = TypedArray.BYTES_PER_ELEMENT;
|
|
1873
|
+
var elementStride = dataElementSize * dataElementBytes;
|
|
1874
|
+
var accessorCount = accessor.count;
|
|
1875
|
+
var promise;
|
|
1876
|
+
if (accessor.bufferView !== undefined) {
|
|
1877
|
+
var bufferViewIndex = accessor.bufferView;
|
|
1878
|
+
var bufferView = bufferViews[bufferViewIndex];
|
|
1879
|
+
promise = context.get(GLTFParserType.BufferView, accessor.bufferView).then(function(bufferViewData) {
|
|
1880
|
+
var bufferIndex = bufferView.buffer;
|
|
1881
|
+
var _bufferViewData_byteOffset;
|
|
1882
|
+
var bufferByteOffset = (_bufferViewData_byteOffset = bufferViewData.byteOffset) != null ? _bufferViewData_byteOffset : 0;
|
|
1883
|
+
var _accessor_byteOffset;
|
|
1884
|
+
var byteOffset = (_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0;
|
|
1885
|
+
var bufferStride = bufferView.byteStride;
|
|
1886
|
+
var bufferInfo;
|
|
1887
|
+
// According to the glTF official documentation only byteStride not undefined is allowed
|
|
1888
|
+
if (bufferStride !== undefined && bufferStride !== elementStride) {
|
|
1889
|
+
var bufferSlice = Math.floor(byteOffset / bufferStride);
|
|
1890
|
+
var bufferCacheKey = bufferViewIndex + ":" + componentType + ":" + bufferSlice + ":" + accessorCount;
|
|
1891
|
+
var accessorBufferCache = context.accessorBufferCache;
|
|
1892
|
+
bufferInfo = accessorBufferCache[bufferCacheKey];
|
|
1893
|
+
if (!bufferInfo) {
|
|
1894
|
+
var offset = bufferByteOffset + bufferSlice * bufferStride;
|
|
1895
|
+
var count = accessorCount * (bufferStride / dataElementBytes);
|
|
1896
|
+
var data = new TypedArray(bufferViewData.buffer, offset, count);
|
|
1897
|
+
accessorBufferCache[bufferCacheKey] = bufferInfo = new BufferInfo(data, true, bufferStride);
|
|
1898
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset, count));
|
|
1899
|
+
}
|
|
1900
|
+
} else {
|
|
1901
|
+
var offset1 = bufferByteOffset + byteOffset;
|
|
1902
|
+
var count1 = accessorCount * dataElementSize;
|
|
1903
|
+
var data1 = new TypedArray(bufferViewData.buffer, offset1, count1);
|
|
1904
|
+
bufferInfo = new BufferInfo(data1, false, elementStride);
|
|
1905
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(bufferIndex, TypedArray, offset1, count1));
|
|
1854
1906
|
}
|
|
1855
|
-
|
|
1856
|
-
|
|
1857
|
-
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
return bufferInfo
|
|
1866
|
-
|
|
1907
|
+
return bufferInfo;
|
|
1908
|
+
});
|
|
1909
|
+
} else {
|
|
1910
|
+
var count = accessorCount * dataElementSize;
|
|
1911
|
+
var data = new TypedArray(count);
|
|
1912
|
+
var bufferInfo = new BufferInfo(data, false, elementStride);
|
|
1913
|
+
bufferInfo.restoreInfo = new BufferDataRestoreInfo(new RestoreDataAccessor(undefined, TypedArray, undefined, count));
|
|
1914
|
+
promise = Promise.resolve(bufferInfo);
|
|
1915
|
+
}
|
|
1916
|
+
return accessor.sparse ? promise.then(function(bufferInfo) {
|
|
1917
|
+
return GLTFUtils.processingSparseData(context, accessor, bufferInfo).then(function() {
|
|
1918
|
+
return bufferInfo;
|
|
1919
|
+
});
|
|
1920
|
+
}) : promise;
|
|
1867
1921
|
};
|
|
1868
|
-
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(
|
|
1869
|
-
var
|
|
1870
|
-
var
|
|
1871
|
-
var
|
|
1872
|
-
var
|
|
1922
|
+
GLTFUtils.bufferToVector3Array = function bufferToVector3Array(buffer, byteOffset, count, normalized, componentType) {
|
|
1923
|
+
var baseOffset = byteOffset / buffer.BYTES_PER_ELEMENT;
|
|
1924
|
+
var stride = buffer.length / count;
|
|
1925
|
+
var vertices = new Array(count);
|
|
1926
|
+
var factor = normalized ? GLTFUtils.getNormalizedComponentScale(componentType) : 1;
|
|
1873
1927
|
for(var i = 0; i < count; i++){
|
|
1874
|
-
var index =
|
|
1875
|
-
|
|
1876
|
-
}
|
|
1877
|
-
return vector3s;
|
|
1878
|
-
};
|
|
1879
|
-
/**
|
|
1880
|
-
* @deprecated
|
|
1881
|
-
* Get accessor data.
|
|
1882
|
-
*/ GLTFUtils.getAccessorData = function getAccessorData(glTF, accessor, buffers) {
|
|
1883
|
-
var bufferViews = glTF.bufferViews;
|
|
1884
|
-
var _accessor_bufferView;
|
|
1885
|
-
var bufferView = bufferViews[(_accessor_bufferView = accessor.bufferView) != null ? _accessor_bufferView : 0];
|
|
1886
|
-
var arrayBuffer = buffers[bufferView.buffer];
|
|
1887
|
-
var accessorByteOffset = accessor.hasOwnProperty("byteOffset") ? accessor.byteOffset : 0;
|
|
1888
|
-
var bufferViewByteOffset = bufferView.hasOwnProperty("byteOffset") ? bufferView.byteOffset : 0;
|
|
1889
|
-
var byteOffset = accessorByteOffset + bufferViewByteOffset;
|
|
1890
|
-
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1891
|
-
var length = accessorTypeSize * accessor.count;
|
|
1892
|
-
var _bufferView_byteStride;
|
|
1893
|
-
var byteStride = (_bufferView_byteStride = bufferView.byteStride) != null ? _bufferView_byteStride : 0;
|
|
1894
|
-
var arrayType = GLTFUtils.getComponentType(accessor.componentType);
|
|
1895
|
-
var uint8Array;
|
|
1896
|
-
if (byteStride) {
|
|
1897
|
-
var accessorByteSize = accessorTypeSize * arrayType.BYTES_PER_ELEMENT;
|
|
1898
|
-
uint8Array = new Uint8Array(accessor.count * accessorByteSize);
|
|
1899
|
-
var originalBufferView = new Uint8Array(arrayBuffer, bufferViewByteOffset, bufferView.byteLength);
|
|
1900
|
-
for(var i = 0; i < accessor.count; i++){
|
|
1901
|
-
for(var j = 0; j < accessorByteSize; j++){
|
|
1902
|
-
uint8Array[i * accessorByteSize + j] = originalBufferView[i * byteStride + accessorByteOffset + j];
|
|
1903
|
-
}
|
|
1904
|
-
}
|
|
1905
|
-
} else {
|
|
1906
|
-
uint8Array = new Uint8Array(arrayBuffer.slice(byteOffset, byteOffset + length * arrayType.BYTES_PER_ELEMENT));
|
|
1907
|
-
}
|
|
1908
|
-
var typedArray = new arrayType(uint8Array.buffer);
|
|
1909
|
-
if (accessor.sparse) {
|
|
1910
|
-
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
1911
|
-
var indicesBufferView = bufferViews[indices.bufferView];
|
|
1912
|
-
var valuesBufferView = bufferViews[values.bufferView];
|
|
1913
|
-
var indicesArrayBuffer = buffers[indicesBufferView.buffer];
|
|
1914
|
-
var valuesArrayBuffer = buffers[valuesBufferView.buffer];
|
|
1915
|
-
var _indices_byteOffset, _indicesBufferView_byteOffset;
|
|
1916
|
-
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesBufferView_byteOffset = indicesBufferView.byteOffset) != null ? _indicesBufferView_byteOffset : 0);
|
|
1917
|
-
var indicesByteLength = indicesBufferView.byteLength;
|
|
1918
|
-
var _values_byteOffset, _valuesBufferView_byteOffset;
|
|
1919
|
-
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesBufferView_byteOffset = valuesBufferView.byteOffset) != null ? _valuesBufferView_byteOffset : 0);
|
|
1920
|
-
var valuesByteLength = valuesBufferView.byteLength;
|
|
1921
|
-
var indicesType = GLTFUtils.getComponentType(indices.componentType);
|
|
1922
|
-
var indicesArray = new indicesType(indicesArrayBuffer, indicesByteOffset, indicesByteLength / indicesType.BYTES_PER_ELEMENT);
|
|
1923
|
-
var valuesArray = new arrayType(valuesArrayBuffer, valuesByteOffset, valuesByteLength / arrayType.BYTES_PER_ELEMENT);
|
|
1924
|
-
for(var i1 = 0; i1 < count; i1++){
|
|
1925
|
-
var replaceIndex = indicesArray[i1];
|
|
1926
|
-
for(var j1 = 0; j1 < accessorTypeSize; j1++){
|
|
1927
|
-
typedArray[replaceIndex * accessorTypeSize + j1] = valuesArray[i1 * accessorTypeSize + j1];
|
|
1928
|
-
}
|
|
1929
|
-
}
|
|
1928
|
+
var index = baseOffset + i * stride;
|
|
1929
|
+
vertices[i] = new Vector3(buffer[index] * factor, buffer[index + 1] * factor, buffer[index + 2] * factor);
|
|
1930
1930
|
}
|
|
1931
|
-
return
|
|
1931
|
+
return vertices;
|
|
1932
1932
|
};
|
|
1933
1933
|
GLTFUtils.getBufferViewData = function getBufferViewData(bufferView, buffers) {
|
|
1934
1934
|
var _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset;
|
|
@@ -1937,40 +1937,43 @@ function registerGLTFParser(pipeline) {
|
|
|
1937
1937
|
};
|
|
1938
1938
|
/**
|
|
1939
1939
|
* Get accessor data.
|
|
1940
|
-
*/ GLTFUtils.processingSparseData = function processingSparseData(
|
|
1940
|
+
*/ GLTFUtils.processingSparseData = function processingSparseData(context, accessor, bufferInfo) {
|
|
1941
1941
|
var restoreInfo = bufferInfo.restoreInfo;
|
|
1942
|
+
var bufferViews = context.glTF.bufferViews;
|
|
1942
1943
|
var accessorTypeSize = GLTFUtils.getAccessorTypeSize(accessor.type);
|
|
1943
1944
|
var TypedArray = GLTFUtils.getComponentType(accessor.componentType);
|
|
1944
1945
|
var data = bufferInfo.data.slice();
|
|
1945
1946
|
var _accessor_sparse = accessor.sparse, count = _accessor_sparse.count, indices = _accessor_sparse.indices, values = _accessor_sparse.values;
|
|
1946
1947
|
var indicesBufferView = bufferViews[indices.bufferView];
|
|
1947
1948
|
var valuesBufferView = bufferViews[values.bufferView];
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
|
|
1959
|
-
|
|
1960
|
-
|
|
1961
|
-
|
|
1962
|
-
|
|
1963
|
-
|
|
1964
|
-
|
|
1965
|
-
|
|
1966
|
-
|
|
1967
|
-
|
|
1968
|
-
var
|
|
1969
|
-
|
|
1970
|
-
|
|
1949
|
+
return Promise.all([
|
|
1950
|
+
context.get(GLTFParserType.BufferView, indices.bufferView),
|
|
1951
|
+
context.get(GLTFParserType.BufferView, values.bufferView)
|
|
1952
|
+
]).then(function(param) {
|
|
1953
|
+
var indicesUint8Array = param[0], valuesUin8Array = param[1];
|
|
1954
|
+
var _indices_byteOffset, _indicesUint8Array_byteOffset;
|
|
1955
|
+
var indicesByteOffset = ((_indices_byteOffset = indices.byteOffset) != null ? _indices_byteOffset : 0) + ((_indicesUint8Array_byteOffset = indicesUint8Array.byteOffset) != null ? _indicesUint8Array_byteOffset : 0);
|
|
1956
|
+
var indicesByteLength = indicesUint8Array.byteLength;
|
|
1957
|
+
var _values_byteOffset, _valuesUin8Array_byteOffset;
|
|
1958
|
+
var valuesByteOffset = ((_values_byteOffset = values.byteOffset) != null ? _values_byteOffset : 0) + ((_valuesUin8Array_byteOffset = valuesUin8Array.byteOffset) != null ? _valuesUin8Array_byteOffset : 0);
|
|
1959
|
+
var valuesByteLength = valuesUin8Array.byteLength;
|
|
1960
|
+
restoreInfo.typeSize = accessorTypeSize;
|
|
1961
|
+
restoreInfo.sparseCount = count;
|
|
1962
|
+
var IndexTypeArray = GLTFUtils.getComponentType(indices.componentType);
|
|
1963
|
+
var indexLength = indicesByteLength / IndexTypeArray.BYTES_PER_ELEMENT;
|
|
1964
|
+
var indicesArray = new IndexTypeArray(indicesUint8Array.buffer, indicesByteOffset, indexLength);
|
|
1965
|
+
restoreInfo.sparseIndices = new RestoreDataAccessor(indicesBufferView.buffer, IndexTypeArray, indicesByteOffset, indexLength);
|
|
1966
|
+
var valueLength = valuesByteLength / TypedArray.BYTES_PER_ELEMENT;
|
|
1967
|
+
var valuesArray = new TypedArray(valuesUin8Array.buffer, valuesByteOffset, valueLength);
|
|
1968
|
+
restoreInfo.sparseValues = new RestoreDataAccessor(valuesBufferView.buffer, TypedArray, valuesByteOffset, valueLength);
|
|
1969
|
+
for(var i = 0; i < count; i++){
|
|
1970
|
+
var replaceIndex = indicesArray[i];
|
|
1971
|
+
for(var j = 0; j < accessorTypeSize; j++){
|
|
1972
|
+
data[replaceIndex * accessorTypeSize + j] = valuesArray[i * accessorTypeSize + j];
|
|
1973
|
+
}
|
|
1971
1974
|
}
|
|
1972
|
-
|
|
1973
|
-
|
|
1975
|
+
bufferInfo.data = data;
|
|
1976
|
+
});
|
|
1974
1977
|
};
|
|
1975
1978
|
GLTFUtils.getIndexFormat = function getIndexFormat(type) {
|
|
1976
1979
|
switch(type){
|
|
@@ -2068,28 +2071,29 @@ function registerGLTFParser(pipeline) {
|
|
|
2068
2071
|
BIN: 0x004e4942
|
|
2069
2072
|
};
|
|
2070
2073
|
var dataView = new DataView(originBuffer);
|
|
2071
|
-
//
|
|
2074
|
+
// Read header
|
|
2072
2075
|
var header = {
|
|
2073
2076
|
magic: dataView.getUint32(0, true),
|
|
2074
2077
|
version: dataView.getUint32(UINT32_LENGTH, true),
|
|
2075
2078
|
length: dataView.getUint32(2 * UINT32_LENGTH, true)
|
|
2076
2079
|
};
|
|
2080
|
+
// Return the original buffer if it is not a glb
|
|
2077
2081
|
if (header.magic !== GLB_HEADER_MAGIC) {
|
|
2078
2082
|
return {
|
|
2079
2083
|
originBuffer: originBuffer
|
|
2080
2084
|
};
|
|
2081
2085
|
}
|
|
2082
|
-
//
|
|
2086
|
+
// Read main data
|
|
2083
2087
|
var chunkLength = dataView.getUint32(GLB_HEADER_LENGTH, true);
|
|
2084
2088
|
var chunkType = dataView.getUint32(GLB_HEADER_LENGTH + UINT32_LENGTH, true);
|
|
2085
|
-
//
|
|
2089
|
+
// Read glTF json
|
|
2086
2090
|
if (chunkType !== GLB_CHUNK_TYPES.JSON) {
|
|
2087
2091
|
console.error("Invalid glb chunk type. Expected 0x4E4F534A, found 0x" + chunkType.toString(16));
|
|
2088
2092
|
return null;
|
|
2089
2093
|
}
|
|
2090
2094
|
var glTFData = new Uint8Array(originBuffer, GLB_HEADER_LENGTH + 2 * UINT32_LENGTH, chunkLength);
|
|
2091
2095
|
var glTF = JSON.parse(Utils.decodeText(glTFData));
|
|
2092
|
-
//
|
|
2096
|
+
// Read all buffers
|
|
2093
2097
|
var buffers = [];
|
|
2094
2098
|
var byteOffset = GLB_HEADER_LENGTH + 2 * UINT32_LENGTH + chunkLength;
|
|
2095
2099
|
var restoreGLBBufferSlice = context.contentRestorer.glbBufferSlices;
|
|
@@ -2980,13 +2984,39 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
2980
2984
|
/**
|
|
2981
2985
|
* @internal
|
|
2982
2986
|
*/ _proto.load = function load(item, resourceManager) {
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2986
|
-
|
|
2987
|
-
|
|
2988
|
-
|
|
2989
|
-
|
|
2987
|
+
var _this = this;
|
|
2988
|
+
return new AssetPromise(function(resolve, reject) {
|
|
2989
|
+
var request = _this.request;
|
|
2990
|
+
request(item.url, _extends({}, item, {
|
|
2991
|
+
type: "arraybuffer"
|
|
2992
|
+
})).then(function(buffer) {
|
|
2993
|
+
return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
|
|
2994
|
+
var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
2995
|
+
return KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params);
|
|
2996
|
+
}).then(function(texture) {
|
|
2997
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
2998
|
+
_inherits(_class, ContentRestorer);
|
|
2999
|
+
function _class() {
|
|
3000
|
+
return ContentRestorer.apply(this, arguments);
|
|
3001
|
+
}
|
|
3002
|
+
var _proto = _class.prototype;
|
|
3003
|
+
_proto.restoreContent = function restoreContent() {
|
|
3004
|
+
return new AssetPromise(function(resolve, reject) {
|
|
3005
|
+
request(item.url, _extends({}, item, {
|
|
3006
|
+
type: "arraybuffer"
|
|
3007
|
+
})).then(function(buffer) {
|
|
3008
|
+
return KTX2Loader._parseBuffer(new Uint8Array(buffer), resourceManager.engine, item.params).then(function(param) {
|
|
3009
|
+
var engine = param.engine, result = param.result, targetFormat = param.targetFormat, params = param.params;
|
|
3010
|
+
return KTX2Loader._createTextureByBuffer(engine, result, targetFormat, params, texture);
|
|
3011
|
+
});
|
|
3012
|
+
}).then(resolve).catch(reject);
|
|
3013
|
+
});
|
|
3014
|
+
};
|
|
3015
|
+
return _class;
|
|
3016
|
+
}(ContentRestorer))(texture));
|
|
3017
|
+
resolve(texture);
|
|
3018
|
+
});
|
|
3019
|
+
}).catch(reject);
|
|
2990
3020
|
});
|
|
2991
3021
|
};
|
|
2992
3022
|
/**
|
|
@@ -3025,7 +3055,7 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
3025
3055
|
};
|
|
3026
3056
|
});
|
|
3027
3057
|
};
|
|
3028
|
-
/** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params) {
|
|
3058
|
+
/** @internal */ KTX2Loader1._createTextureByBuffer = function _createTextureByBuffer(engine, transcodeResult, targetFormat, params, restoredTexture) {
|
|
3029
3059
|
var width = transcodeResult.width, height = transcodeResult.height, faces = transcodeResult.faces;
|
|
3030
3060
|
var faceCount = faces.length;
|
|
3031
3061
|
var mipmaps = faces[0];
|
|
@@ -3033,13 +3063,13 @@ var KTX2Loader = (_KTX2Loader = /*#__PURE__*/ function(Loader1) {
|
|
|
3033
3063
|
var engineFormat = this._getEngineTextureFormat(targetFormat, transcodeResult);
|
|
3034
3064
|
var texture;
|
|
3035
3065
|
if (faceCount !== 6) {
|
|
3036
|
-
texture = new Texture2D(engine, width, height, engineFormat, mipmap);
|
|
3066
|
+
texture = restoredTexture || new Texture2D(engine, width, height, engineFormat, mipmap);
|
|
3037
3067
|
for(var mipLevel = 0; mipLevel < mipmaps.length; mipLevel++){
|
|
3038
3068
|
var data = mipmaps[mipLevel].data;
|
|
3039
3069
|
texture.setPixelBuffer(data, mipLevel);
|
|
3040
3070
|
}
|
|
3041
3071
|
} else {
|
|
3042
|
-
texture = new TextureCube(engine, height, engineFormat, mipmap);
|
|
3072
|
+
texture = restoredTexture || new TextureCube(engine, height, engineFormat, mipmap);
|
|
3043
3073
|
for(var i = 0; i < faces.length; i++){
|
|
3044
3074
|
var faceData = faces[i];
|
|
3045
3075
|
for(var mipLevel1 = 0; mipLevel1 < mipmaps.length; mipLevel1++){
|
|
@@ -3236,16 +3266,16 @@ var KTX2Transcoder;
|
|
|
3236
3266
|
var frame = restoreInfo.blendShape.frames[0];
|
|
3237
3267
|
var position = restoreInfo.position;
|
|
3238
3268
|
var positionData = _this._getBufferData(buffers, position.buffer);
|
|
3239
|
-
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.
|
|
3269
|
+
frame.deltaPositions = GLTFUtils.bufferToVector3Array(positionData, position.byteOffset, position.count, position.normalized, position.componentType);
|
|
3240
3270
|
if (restoreInfo.normal) {
|
|
3241
3271
|
var normal = restoreInfo.normal;
|
|
3242
3272
|
var normalData = _this._getBufferData(buffers, normal.buffer);
|
|
3243
|
-
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.
|
|
3273
|
+
frame.deltaNormals = GLTFUtils.bufferToVector3Array(normalData, normal.byteOffset, normal.count, normal.normalized, normal.componentType);
|
|
3244
3274
|
}
|
|
3245
3275
|
if (restoreInfo.tangent) {
|
|
3246
3276
|
var tangent = restoreInfo.tangent;
|
|
3247
3277
|
var tangentData = _this._getBufferData(buffers, tangent.buffer);
|
|
3248
|
-
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.
|
|
3278
|
+
frame.deltaTangents = GLTFUtils.bufferToVector3Array(tangentData, tangent.byteOffset, tangent.count, tangent.normalized, tangent.componentType);
|
|
3249
3279
|
}
|
|
3250
3280
|
}
|
|
3251
3281
|
mesh.uploadData(true);
|
|
@@ -3257,8 +3287,13 @@ var KTX2Transcoder;
|
|
|
3257
3287
|
};
|
|
3258
3288
|
_proto._getBufferData = function _getBufferData(buffers, restoreInfo) {
|
|
3259
3289
|
var main = restoreInfo.main;
|
|
3260
|
-
var
|
|
3261
|
-
|
|
3290
|
+
var data;
|
|
3291
|
+
if (main) {
|
|
3292
|
+
var buffer = buffers[main.bufferIndex];
|
|
3293
|
+
data = new main.TypedArray(buffer, main.byteOffset, main.length);
|
|
3294
|
+
} else {
|
|
3295
|
+
data = new main.TypedArray(main.length);
|
|
3296
|
+
}
|
|
3262
3297
|
var sparseCount = restoreInfo.sparseCount;
|
|
3263
3298
|
if (sparseCount) {
|
|
3264
3299
|
var sparseIndex = restoreInfo.sparseIndices;
|
|
@@ -3331,11 +3366,12 @@ var KTX2Transcoder;
|
|
|
3331
3366
|
};
|
|
3332
3367
|
/**
|
|
3333
3368
|
* @internal
|
|
3334
|
-
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer,
|
|
3369
|
+
*/ var BlendShapeDataRestoreInfo = function BlendShapeDataRestoreInfo(buffer, byteOffset, count, normalized, componentType) {
|
|
3335
3370
|
this.buffer = buffer;
|
|
3336
|
-
this.stride = stride;
|
|
3337
3371
|
this.byteOffset = byteOffset;
|
|
3338
3372
|
this.count = count;
|
|
3373
|
+
this.normalized = normalized;
|
|
3374
|
+
this.componentType = componentType;
|
|
3339
3375
|
};
|
|
3340
3376
|
|
|
3341
3377
|
/**
|
|
@@ -3512,8 +3548,13 @@ var GLTFSchemaParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3512
3548
|
type: "arraybuffer"
|
|
3513
3549
|
};
|
|
3514
3550
|
return request(url, requestConfig).then(function(buffer) {
|
|
3515
|
-
|
|
3516
|
-
|
|
3551
|
+
var _parseResult;
|
|
3552
|
+
var parseResult = GLTFUtils.parseGLB(context, buffer);
|
|
3553
|
+
// If the buffer is a GLB file, we need to restore the buffer data
|
|
3554
|
+
if ((_parseResult = parseResult) == null ? void 0 : _parseResult.glTF) {
|
|
3555
|
+
restoreBufferRequests.push(new BufferRequestInfo(url, requestConfig));
|
|
3556
|
+
}
|
|
3557
|
+
return parseResult;
|
|
3517
3558
|
}).then(function(result) {
|
|
3518
3559
|
var _result;
|
|
3519
3560
|
if ((_result = result) == null ? void 0 : _result.glTF) {
|
|
@@ -3931,7 +3972,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3931
3972
|
resolve(mesh);
|
|
3932
3973
|
} else {
|
|
3933
3974
|
mesh.then(function(mesh) {
|
|
3934
|
-
|
|
3975
|
+
resolve(mesh);
|
|
3935
3976
|
});
|
|
3936
3977
|
}
|
|
3937
3978
|
} else {
|
|
@@ -3939,35 +3980,20 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
3939
3980
|
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
3940
3981
|
meshRestoreInfo.mesh = mesh1;
|
|
3941
3982
|
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
3942
|
-
GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF,
|
|
3943
|
-
return null;
|
|
3944
|
-
}, function(attributeName, shapeIndex) {
|
|
3945
|
-
var shapeAccessorIdx = gltfPrimitive.targets[shapeIndex];
|
|
3946
|
-
var attributeAccessorIdx = shapeAccessorIdx[attributeName];
|
|
3947
|
-
if (attributeAccessorIdx) {
|
|
3948
|
-
var accessor = glTF.accessors[attributeAccessorIdx];
|
|
3949
|
-
return GLTFUtils.getAccessorBuffer(context, context.glTF.bufferViews, accessor);
|
|
3950
|
-
} else {
|
|
3951
|
-
return null;
|
|
3952
|
-
}
|
|
3953
|
-
}, function() {
|
|
3954
|
-
var indexAccessor = glTF.accessors[gltfPrimitive.indices];
|
|
3955
|
-
return context.get(GLTFParserType.Buffer).then(function(buffers) {
|
|
3956
|
-
return GLTFUtils.getAccessorData(glTF, indexAccessor, buffers);
|
|
3957
|
-
});
|
|
3958
|
-
}, context.params.keepMeshData).then(resolve);
|
|
3983
|
+
GLTFMeshParser._parseMeshFromGLTFPrimitive(context, mesh1, meshRestoreInfo, meshInfo, gltfPrimitive, glTF, context.params.keepMeshData).then(resolve);
|
|
3959
3984
|
}
|
|
3960
3985
|
});
|
|
3961
3986
|
};
|
|
3962
3987
|
var meshInfo = context.glTF.meshes[index];
|
|
3963
|
-
var glTF = context.glTF,
|
|
3988
|
+
var glTF = context.glTF, glTFResource = context.glTFResource;
|
|
3989
|
+
var engine = glTFResource.engine;
|
|
3964
3990
|
var primitivePromises = new Array();
|
|
3965
3991
|
for(var i = 0, length = meshInfo.primitives.length; i < length; i++)_loop(i);
|
|
3966
3992
|
return Promise.all(primitivePromises);
|
|
3967
3993
|
};
|
|
3968
3994
|
/**
|
|
3969
3995
|
* @internal
|
|
3970
|
-
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf,
|
|
3996
|
+
*/ GLTFMeshParser1._parseMeshFromGLTFPrimitive = function _parseMeshFromGLTFPrimitive(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, keepMeshData) {
|
|
3971
3997
|
var _loop = function(attribute) {
|
|
3972
3998
|
var accessor = accessors[attributes[attribute]];
|
|
3973
3999
|
var promise = GLTFUtils.getAccessorBuffer(context, gltf.bufferViews, accessor).then(function(accessorBuffer) {
|
|
@@ -4038,6 +4064,7 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4038
4064
|
});
|
|
4039
4065
|
promises.push(promise);
|
|
4040
4066
|
};
|
|
4067
|
+
var _this = this;
|
|
4041
4068
|
var accessors = gltf.accessors;
|
|
4042
4069
|
var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
|
|
4043
4070
|
var engine = mesh.engine;
|
|
@@ -4062,61 +4089,68 @@ var GLTFMeshParser = (_GLTFMeshParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
|
4062
4089
|
}
|
|
4063
4090
|
// BlendShapes
|
|
4064
4091
|
if (targets) {
|
|
4065
|
-
promises.push(GLTFMeshParser._createBlendShape(mesh, meshRestoreInfo, gltfMesh,
|
|
4092
|
+
promises.push(GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets, _this._getBlendShapeData));
|
|
4066
4093
|
}
|
|
4067
4094
|
return Promise.all(promises).then(function() {
|
|
4068
4095
|
mesh.uploadData(!keepMeshData);
|
|
4069
|
-
return
|
|
4096
|
+
return mesh;
|
|
4070
4097
|
});
|
|
4071
4098
|
});
|
|
4072
4099
|
};
|
|
4100
|
+
GLTFMeshParser1._getBlendShapeData = function _getBlendShapeData(context, glTF, accessor) {
|
|
4101
|
+
return GLTFUtils.getAccessorBuffer(context, glTF.bufferViews, accessor).then(function(bufferInfo) {
|
|
4102
|
+
var buffer = bufferInfo.data;
|
|
4103
|
+
var _accessor_byteOffset;
|
|
4104
|
+
var byteOffset = bufferInfo.interleaved ? ((_accessor_byteOffset = accessor.byteOffset) != null ? _accessor_byteOffset : 0) % bufferInfo.stride : 0;
|
|
4105
|
+
var count = accessor.count, normalized = accessor.normalized, componentType = accessor.componentType;
|
|
4106
|
+
var vertices = GLTFUtils.bufferToVector3Array(buffer, byteOffset, count, normalized, componentType);
|
|
4107
|
+
var restoreInfo = new BlendShapeDataRestoreInfo(bufferInfo.restoreInfo, byteOffset, count, normalized, componentType);
|
|
4108
|
+
return {
|
|
4109
|
+
vertices: vertices,
|
|
4110
|
+
restoreInfo: restoreInfo
|
|
4111
|
+
};
|
|
4112
|
+
});
|
|
4113
|
+
};
|
|
4073
4114
|
/**
|
|
4074
4115
|
* @internal
|
|
4075
|
-
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(mesh, meshRestoreInfo, glTFMesh,
|
|
4076
|
-
var _loop = function(i
|
|
4116
|
+
*/ GLTFMeshParser1._createBlendShape = function _createBlendShape(context, mesh, meshRestoreInfo, glTFMesh, gltfPrimitive, glTFTargets, getBlendShapeData) {
|
|
4117
|
+
var _loop = function(i) {
|
|
4118
|
+
var blendShapeData = {};
|
|
4119
|
+
blendShapeCollection[i] = blendShapeData;
|
|
4077
4120
|
var name = blendShapeNames ? blendShapeNames[i] : "blendShape" + i;
|
|
4121
|
+
var targets = gltfPrimitive.targets[i];
|
|
4122
|
+
var normalTarget = targets["NORMAL"];
|
|
4123
|
+
var tangentTarget = targets["TANGENT"];
|
|
4124
|
+
var hasNormal = normalTarget !== undefined;
|
|
4125
|
+
var hasTangent = tangentTarget !== undefined;
|
|
4078
4126
|
var promise = Promise.all([
|
|
4079
|
-
getBlendShapeData("POSITION"
|
|
4080
|
-
getBlendShapeData(
|
|
4081
|
-
getBlendShapeData(
|
|
4082
|
-
]).then(function(
|
|
4083
|
-
var
|
|
4084
|
-
var
|
|
4085
|
-
var tanBufferInfo = infos[2];
|
|
4086
|
-
var target = glTFTargets[i];
|
|
4087
|
-
var posAccessor;
|
|
4088
|
-
var norAccessor;
|
|
4089
|
-
var tanAccessor;
|
|
4090
|
-
var positions = null;
|
|
4091
|
-
if (posBufferInfo) {
|
|
4092
|
-
posAccessor = accessors[target["POSITION"]];
|
|
4093
|
-
var _posAccessor_byteOffset;
|
|
4094
|
-
positions = GLTFUtils.bufferToVector3Array(posBufferInfo.data, posBufferInfo.stride, (_posAccessor_byteOffset = posAccessor.byteOffset) != null ? _posAccessor_byteOffset : 0, posAccessor.count);
|
|
4095
|
-
}
|
|
4096
|
-
var normals = null;
|
|
4097
|
-
if (norBufferInfo) {
|
|
4098
|
-
norAccessor = accessors[target["NORMAL"]];
|
|
4099
|
-
var _norAccessor_byteOffset;
|
|
4100
|
-
normals = GLTFUtils.bufferToVector3Array(norBufferInfo.data, norBufferInfo.stride, (_norAccessor_byteOffset = norAccessor.byteOffset) != null ? _norAccessor_byteOffset : 0, norAccessor.count);
|
|
4101
|
-
}
|
|
4102
|
-
var tangents = null;
|
|
4103
|
-
if (tanBufferInfo) {
|
|
4104
|
-
tanAccessor = accessors[target["NORMAL"]];
|
|
4105
|
-
var _tanAccessor_byteOffset;
|
|
4106
|
-
tangents = GLTFUtils.bufferToVector3Array(tanBufferInfo.data, tanBufferInfo.stride, (_tanAccessor_byteOffset = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset : 0, tanAccessor.count);
|
|
4107
|
-
}
|
|
4127
|
+
getBlendShapeData(context, glTF, accessors[targets["POSITION"]]),
|
|
4128
|
+
hasNormal ? getBlendShapeData(context, glTF, accessors[normalTarget]) : null,
|
|
4129
|
+
hasTangent ? getBlendShapeData(context, glTF, accessors[tangentTarget]) : null
|
|
4130
|
+
]).then(function(vertices) {
|
|
4131
|
+
var _tangentData;
|
|
4132
|
+
var positionData = vertices[0], normalData = vertices[1], tangentData = vertices[2];
|
|
4108
4133
|
var blendShape = new BlendShape(name);
|
|
4109
|
-
blendShape.addFrame(1.0,
|
|
4110
|
-
|
|
4111
|
-
|
|
4112
|
-
meshRestoreInfo.blendShapes.push(new BlendShapeRestoreInfo(blendShape, new BlendShapeDataRestoreInfo(posBufferInfo.restoreInfo, posBufferInfo.stride, (_posAccessor_byteOffset1 = posAccessor.byteOffset) != null ? _posAccessor_byteOffset1 : 0, posAccessor.count), norBufferInfo ? new BlendShapeDataRestoreInfo(norBufferInfo.restoreInfo, norBufferInfo.stride, (_norAccessor_byteOffset1 = norAccessor.byteOffset) != null ? _norAccessor_byteOffset1 : 0, norAccessor.count) : null, tanBufferInfo ? new BlendShapeDataRestoreInfo(tanBufferInfo.restoreInfo, tanBufferInfo.stride, (_tanAccessor_byteOffset1 = tanAccessor.byteOffset) != null ? _tanAccessor_byteOffset1 : 0, tanAccessor.count) : null));
|
|
4134
|
+
blendShape.addFrame(1.0, positionData.vertices, hasNormal ? normalData.vertices : null, hasTangent ? tangentData.vertices : null);
|
|
4135
|
+
blendShapeData.blendShape = blendShape;
|
|
4136
|
+
blendShapeData.restoreInfo = new BlendShapeRestoreInfo(blendShape, positionData.restoreInfo, hasNormal ? normalData.restoreInfo : null, hasTangent ? (_tangentData = tangentData) == null ? void 0 : _tangentData.restoreInfo : null);
|
|
4113
4137
|
});
|
|
4114
4138
|
promises.push(promise);
|
|
4115
4139
|
};
|
|
4140
|
+
var glTF = context.glTF;
|
|
4141
|
+
var accessors = glTF.accessors;
|
|
4116
4142
|
var blendShapeNames = glTFMesh.extras ? glTFMesh.extras.targetNames : null;
|
|
4117
4143
|
var promises = new Array();
|
|
4118
|
-
|
|
4119
|
-
|
|
4144
|
+
var blendShapeCount = glTFTargets.length;
|
|
4145
|
+
var blendShapeCollection = new Array(blendShapeCount);
|
|
4146
|
+
for(var i = 0; i < blendShapeCount; i++)_loop(i);
|
|
4147
|
+
return Promise.all(promises).then(function() {
|
|
4148
|
+
for(var _iterator = _create_for_of_iterator_helper_loose(blendShapeCollection), _step; !(_step = _iterator()).done;){
|
|
4149
|
+
var blendShape = _step.value;
|
|
4150
|
+
mesh.addBlendShape(blendShape.blendShape);
|
|
4151
|
+
meshRestoreInfo.blendShapes.push(blendShape.restoreInfo);
|
|
4152
|
+
}
|
|
4153
|
+
});
|
|
4120
4154
|
};
|
|
4121
4155
|
return GLTFMeshParser1;
|
|
4122
4156
|
}(GLTFParser), function() {
|
|
@@ -4497,6 +4531,25 @@ GLTFValidator = __decorate([
|
|
|
4497
4531
|
registerGLTFParser(GLTFParserType.Validator)
|
|
4498
4532
|
], GLTFValidator);
|
|
4499
4533
|
|
|
4534
|
+
var GLTFBufferViewParser = /*#__PURE__*/ function(GLTFParser1) {
|
|
4535
|
+
_inherits(GLTFBufferViewParser, GLTFParser1);
|
|
4536
|
+
function GLTFBufferViewParser() {
|
|
4537
|
+
return GLTFParser1.apply(this, arguments);
|
|
4538
|
+
}
|
|
4539
|
+
var _proto = GLTFBufferViewParser.prototype;
|
|
4540
|
+
_proto.parse = function parse(context, index) {
|
|
4541
|
+
var bufferView = context.glTF.bufferViews[index];
|
|
4542
|
+
var extensions = bufferView.extensions, _bufferView_byteOffset = bufferView.byteOffset, byteOffset = _bufferView_byteOffset === void 0 ? 0 : _bufferView_byteOffset, byteLength = bufferView.byteLength, bufferIndex = bufferView.buffer;
|
|
4543
|
+
return extensions ? GLTFParser.executeExtensionsCreateAndParse(extensions, context, bufferView) : context.get(GLTFParserType.Buffer, bufferIndex).then(function(buffer) {
|
|
4544
|
+
return new Uint8Array(buffer, byteOffset, byteLength);
|
|
4545
|
+
});
|
|
4546
|
+
};
|
|
4547
|
+
return GLTFBufferViewParser;
|
|
4548
|
+
}(GLTFParser);
|
|
4549
|
+
GLTFBufferViewParser = __decorate([
|
|
4550
|
+
registerGLTFParser(GLTFParserType.BufferView)
|
|
4551
|
+
], GLTFBufferViewParser);
|
|
4552
|
+
|
|
4500
4553
|
var GLTFLoader = /*#__PURE__*/ function(Loader1) {
|
|
4501
4554
|
_inherits(GLTFLoader, Loader1);
|
|
4502
4555
|
function GLTFLoader() {
|
|
@@ -4533,23 +4586,48 @@ var HDRLoader = (_HDRLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
4533
4586
|
var _this = this;
|
|
4534
4587
|
return new AssetPromise(function(resolve, reject) {
|
|
4535
4588
|
var engine = resourceManager.engine;
|
|
4536
|
-
_this.request
|
|
4589
|
+
var request = _this.request;
|
|
4590
|
+
_this.request(item.url, _extends({}, item, {
|
|
4537
4591
|
type: "arraybuffer"
|
|
4538
|
-
}).then(function(buffer) {
|
|
4539
|
-
var
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4592
|
+
})).then(function(buffer) {
|
|
4593
|
+
var texture = HDRLoader._setTextureByBuffer(engine, buffer);
|
|
4594
|
+
engine.resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
4595
|
+
_inherits(_class, ContentRestorer);
|
|
4596
|
+
function _class() {
|
|
4597
|
+
return ContentRestorer.apply(this, arguments);
|
|
4598
|
+
}
|
|
4599
|
+
var _proto = _class.prototype;
|
|
4600
|
+
_proto.restoreContent = function restoreContent() {
|
|
4601
|
+
return new AssetPromise(function(resolve, reject) {
|
|
4602
|
+
request(item.url, _extends({}, item, {
|
|
4603
|
+
type: "arraybuffer"
|
|
4604
|
+
})).then(function(buffer) {
|
|
4605
|
+
HDRLoader._setTextureByBuffer(engine, buffer, texture);
|
|
4606
|
+
resolve(texture);
|
|
4607
|
+
}).catch(reject);
|
|
4608
|
+
});
|
|
4609
|
+
};
|
|
4610
|
+
return _class;
|
|
4611
|
+
}(ContentRestorer))(texture));
|
|
4549
4612
|
resolve(texture);
|
|
4550
4613
|
}).catch(reject);
|
|
4551
4614
|
});
|
|
4552
4615
|
};
|
|
4616
|
+
/**
|
|
4617
|
+
* @internal
|
|
4618
|
+
*/ HDRLoader1._setTextureByBuffer = function _setTextureByBuffer(engine, buffer, texture) {
|
|
4619
|
+
var bufferArray = new Uint8Array(buffer);
|
|
4620
|
+
var _HDRLoader__parseHeader = HDRLoader._parseHeader(bufferArray), width = _HDRLoader__parseHeader.width, height = _HDRLoader__parseHeader.height, dataPosition = _HDRLoader__parseHeader.dataPosition;
|
|
4621
|
+
var cubeSize = height >> 1;
|
|
4622
|
+
texture || (texture = new TextureCube(engine, cubeSize));
|
|
4623
|
+
var pixels = HDRLoader._readPixels(bufferArray.subarray(dataPosition), width, height);
|
|
4624
|
+
var cubeMapData = HDRLoader._convertToCubemap(pixels, width, height, cubeSize);
|
|
4625
|
+
for(var faceIndex = 0; faceIndex < 6; faceIndex++){
|
|
4626
|
+
texture.setPixelBuffer(TextureCubeFace.PositiveX + faceIndex, cubeMapData[faceIndex], 0);
|
|
4627
|
+
}
|
|
4628
|
+
texture.generateMipmaps();
|
|
4629
|
+
return texture;
|
|
4630
|
+
};
|
|
4553
4631
|
HDRLoader1._convertToCubemap = function _convertToCubemap(pixels, inputWidth, inputHeight, size) {
|
|
4554
4632
|
if (!pixels) {
|
|
4555
4633
|
throw "ConvertPanoramaToCubemap: input cannot be null";
|
|
@@ -5087,7 +5165,8 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5087
5165
|
_proto.load = function load(item, resourceManager) {
|
|
5088
5166
|
var _this = this;
|
|
5089
5167
|
return new AssetPromise(function(resolve, reject) {
|
|
5090
|
-
_this.request
|
|
5168
|
+
var request = _this.request;
|
|
5169
|
+
request(item.url, _extends({}, item, {
|
|
5091
5170
|
type: "arraybuffer"
|
|
5092
5171
|
})).then(function(bin) {
|
|
5093
5172
|
var parsedData = parseSingleKTX(bin);
|
|
@@ -5098,6 +5177,32 @@ var KTXLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5098
5177
|
var _mipmaps_miplevel = mipmaps[miplevel], width1 = _mipmaps_miplevel.width, height1 = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
|
|
5099
5178
|
texture.setPixelBuffer(data, miplevel, 0, 0, width1, height1);
|
|
5100
5179
|
}
|
|
5180
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
5181
|
+
_inherits(_class, ContentRestorer);
|
|
5182
|
+
function _class() {
|
|
5183
|
+
return ContentRestorer.apply(this, arguments);
|
|
5184
|
+
}
|
|
5185
|
+
var _proto = _class.prototype;
|
|
5186
|
+
_proto.restoreContent = function restoreContent() {
|
|
5187
|
+
var _this = this;
|
|
5188
|
+
return new AssetPromise(function(resolve, reject) {
|
|
5189
|
+
request(item.url, _extends({}, item, {
|
|
5190
|
+
type: "arraybuffer"
|
|
5191
|
+
})).then(function(bin) {
|
|
5192
|
+
var mipmaps = parseSingleKTX(bin).mipmaps;
|
|
5193
|
+
var texture = _this.resource;
|
|
5194
|
+
for(var miplevel = 0; miplevel < mipmaps.length; miplevel++){
|
|
5195
|
+
var _mipmaps_miplevel = mipmaps[miplevel], width = _mipmaps_miplevel.width, height = _mipmaps_miplevel.height, data = _mipmaps_miplevel.data;
|
|
5196
|
+
texture.setPixelBuffer(data, miplevel, 0, 0, width, height);
|
|
5197
|
+
}
|
|
5198
|
+
resolve(texture);
|
|
5199
|
+
}).catch(function(e) {
|
|
5200
|
+
reject(e);
|
|
5201
|
+
});
|
|
5202
|
+
});
|
|
5203
|
+
};
|
|
5204
|
+
return _class;
|
|
5205
|
+
}(ContentRestorer))(texture));
|
|
5101
5206
|
resolve(texture);
|
|
5102
5207
|
}).catch(function(e) {
|
|
5103
5208
|
reject(e);
|
|
@@ -5204,11 +5309,32 @@ var MeshLoader = /*#__PURE__*/ function(Loader1) {
|
|
|
5204
5309
|
_proto.load = function load(item, resourceManager) {
|
|
5205
5310
|
var _this = this;
|
|
5206
5311
|
return new AssetPromise(function(resolve, reject) {
|
|
5207
|
-
_this.request
|
|
5312
|
+
var request = _this.request;
|
|
5313
|
+
var engine = resourceManager.engine;
|
|
5314
|
+
request(item.url, _extends({}, item, {
|
|
5208
5315
|
type: "arraybuffer"
|
|
5209
5316
|
})).then(function(data) {
|
|
5210
|
-
return decode(data,
|
|
5317
|
+
return decode(data, engine);
|
|
5211
5318
|
}).then(function(mesh) {
|
|
5319
|
+
resourceManager.addContentRestorer(new /*#__PURE__*/ (function(ContentRestorer) {
|
|
5320
|
+
_inherits(_class, ContentRestorer);
|
|
5321
|
+
function _class() {
|
|
5322
|
+
return ContentRestorer.apply(this, arguments);
|
|
5323
|
+
}
|
|
5324
|
+
var _proto = _class.prototype;
|
|
5325
|
+
_proto.restoreContent = function restoreContent() {
|
|
5326
|
+
return new AssetPromise(function(resolve, reject) {
|
|
5327
|
+
request(item.url, _extends({}, item, {
|
|
5328
|
+
type: "arraybuffer"
|
|
5329
|
+
})).then(function(data) {
|
|
5330
|
+
return decode(data, engine, mesh);
|
|
5331
|
+
}).then(function(mesh) {
|
|
5332
|
+
resolve(mesh);
|
|
5333
|
+
}).catch(reject);
|
|
5334
|
+
});
|
|
5335
|
+
};
|
|
5336
|
+
return _class;
|
|
5337
|
+
}(ContentRestorer))(mesh));
|
|
5212
5338
|
resolve(mesh);
|
|
5213
5339
|
}).catch(reject);
|
|
5214
5340
|
});
|
|
@@ -5744,14 +5870,17 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5744
5870
|
var buffer = GLTFUtils.getBufferViewData(bufferViews[bufferViewIndex], buffers);
|
|
5745
5871
|
return KHR_draco_mesh_compression._decoder.decode(buffer, taskConfig).then(function(decodedGeometry) {
|
|
5746
5872
|
var mesh = new ModelMesh(engine, glTFMesh.name);
|
|
5747
|
-
|
|
5873
|
+
var meshRestoreInfo = new ModelMeshRestoreInfo();
|
|
5874
|
+
meshRestoreInfo.mesh = mesh;
|
|
5875
|
+
context.contentRestorer.meshes.push(meshRestoreInfo);
|
|
5876
|
+
return _this._parseMeshFromGLTFPrimitiveDraco(context, mesh, meshRestoreInfo, glTFMesh, glTFPrimitive, glTF, function(attributeSemantic) {
|
|
5748
5877
|
for(var j = 0; j < decodedGeometry.attributes.length; j++){
|
|
5749
5878
|
if (decodedGeometry.attributes[j].name === attributeSemantic) {
|
|
5750
5879
|
return decodedGeometry.attributes[j].array;
|
|
5751
5880
|
}
|
|
5752
5881
|
}
|
|
5753
5882
|
return null;
|
|
5754
|
-
}, function(
|
|
5883
|
+
}, function() {
|
|
5755
5884
|
throw "BlendShape animation is not supported when using draco.";
|
|
5756
5885
|
}, function() {
|
|
5757
5886
|
return decodedGeometry.index.array;
|
|
@@ -5764,7 +5893,7 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5764
5893
|
KHR_draco_mesh_compression._decoder = new DRACODecoder();
|
|
5765
5894
|
}
|
|
5766
5895
|
};
|
|
5767
|
-
_proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(mesh, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
|
|
5896
|
+
_proto._parseMeshFromGLTFPrimitiveDraco = function _parseMeshFromGLTFPrimitiveDraco(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, gltf, getVertexBufferData, getBlendShapeData, getIndexBufferData, keepMeshData) {
|
|
5768
5897
|
var attributes = gltfPrimitive.attributes, targets = gltfPrimitive.targets, indices = gltfPrimitive.indices, mode = gltfPrimitive.mode;
|
|
5769
5898
|
var vertexCount;
|
|
5770
5899
|
var accessors = gltf.accessors;
|
|
@@ -5860,7 +5989,7 @@ var KHR_draco_mesh_compression = (_KHR_draco_mesh_compression = /*#__PURE__*/ fu
|
|
|
5860
5989
|
mesh.addSubMesh(0, vertexCount, mode);
|
|
5861
5990
|
}
|
|
5862
5991
|
// BlendShapes
|
|
5863
|
-
targets && GLTFMeshParser._createBlendShape(mesh,
|
|
5992
|
+
targets && GLTFMeshParser._createBlendShape(context, mesh, meshRestoreInfo, gltfMesh, gltfPrimitive, targets, getBlendShapeData);
|
|
5864
5993
|
mesh.uploadData(!keepMeshData);
|
|
5865
5994
|
return Promise.resolve(mesh);
|
|
5866
5995
|
};
|
|
@@ -6200,5 +6329,5 @@ GALACEAN_animation_event = __decorate([
|
|
|
6200
6329
|
registerGLTFExtension("GALACEAN_animation_event", GLTFExtensionMode.AdditiveParse)
|
|
6201
6330
|
], GALACEAN_animation_event);
|
|
6202
6331
|
|
|
6203
|
-
export { AnimationClipDecoder, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
|
|
6332
|
+
export { AnimationClipDecoder, BufferInfo, ComponentMap, EditorTextureLoader, GLTFAnimationParser, GLTFBufferParser, GLTFBufferViewParser, GLTFEntityParser, GLTFExtensionMode, GLTFExtensionParser, GLTFMaterialParser, GLTFMeshParser, GLTFParser, GLTFParserContext, GLTFParserType, GLTFResource, GLTFSceneParser, GLTFSchemaParser, GLTFSkinParser, GLTFTextureParser, GLTFUtils, GLTFValidator, InterpolableValueType, KTX2Loader, KTX2TargetFormat, KTX2Transcoder, MeshDecoder, MeshLoader$1 as MeshLoader, PrefabParser, ReflectionParser, SceneParser, SpecularMode, Texture2DDecoder, decode, parseSingleKTX, registerGLTFExtension, registerGLTFParser };
|
|
6204
6333
|
//# sourceMappingURL=module.js.map
|