@combeenation/3d-viewer 14.0.0 → 14.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib-cjs/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/index.d.ts +2 -13
- package/dist/lib-cjs/index.js +3 -13
- package/dist/lib-cjs/index.js.map +1 -1
- package/dist/lib-cjs/manager/camera-manager.js +6 -3
- package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
- package/dist/lib-cjs/manager/gltf-export-manager.js +11 -3
- package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -1
- package/dist/lib-cjs/manager/model-manager.d.ts +2 -2
- package/package.json +1 -1
- package/src/dev.ts +1 -1
- package/src/index.ts +3 -13
- package/src/manager/camera-manager.ts +14 -11
- package/src/manager/gltf-export-manager.ts +19 -4
- package/src/manager/model-manager.ts +2 -2
package/dist/lib-cjs/index.d.ts
CHANGED
|
@@ -1,17 +1,6 @@
|
|
|
1
1
|
/// <reference path="../../src/global-types.d.ts" />
|
|
2
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions
|
|
3
|
-
import '@babylonjs/
|
|
4
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior';
|
|
5
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness';
|
|
6
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen';
|
|
7
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular';
|
|
8
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency';
|
|
9
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission';
|
|
10
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit';
|
|
11
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants';
|
|
12
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu';
|
|
13
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
|
|
14
|
-
import '@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform';
|
|
2
|
+
import '@babylonjs/loaders/glTF/2.0/Extensions';
|
|
3
|
+
import '@babylonjs/serializers/glTF/2.0/Extensions';
|
|
15
4
|
export * from '@babylonjs/core/abstractScene';
|
|
16
5
|
export * from '@babylonjs/core/Animations';
|
|
17
6
|
export * from '@babylonjs/core/assetContainer';
|
package/dist/lib-cjs/index.js
CHANGED
|
@@ -16,19 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
/// <reference path="global-types.d.ts" />
|
|
18
18
|
// Babylon.js extensions
|
|
19
|
-
|
|
20
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions
|
|
21
|
-
require("@babylonjs/
|
|
22
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness");
|
|
23
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen");
|
|
24
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular");
|
|
25
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency");
|
|
26
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission");
|
|
27
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit");
|
|
28
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants");
|
|
29
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu");
|
|
30
|
-
require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform");
|
|
31
|
-
require("@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform");
|
|
19
|
+
// All gltf extensions to support maximum feature set
|
|
20
|
+
require("@babylonjs/loaders/glTF/2.0/Extensions");
|
|
21
|
+
require("@babylonjs/serializers/glTF/2.0/Extensions");
|
|
32
22
|
// Babylon.js modules
|
|
33
23
|
// All used Babylyon.js modules should be re-exported here.
|
|
34
24
|
// In this way consumers have access to all of them as well via an import of "@combeenation/3d-viewer" instead of having
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,wBAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,wBAAwB;AACxB,qDAAqD;AACrD,kDAAgD;AAChD,sDAAoD;AAEpD,qBAAqB;AACrB,2DAA2D;AAC3D,wHAAwH;AACxH,+CAA+C;AAC/C,yGAAyG;AACzG,iEAAiE;AACjE,gEAA8C;AAC9C,6DAA2C;AAC3C,iEAA+C;AAC/C,0DAAwC;AACxC,0EAAwD;AACxD,iEAA+C;AAC/C,0DAAwC;AACxC,mEAAiD;AACjD,mEAAiD;AACjD,iEAA+C;AAC/C,qEAAmD;AACnD,yDAAuC;AACvC,0DAAwC;AACxC,qEAAmD;AACnD,gEAA8C;AAC9C,6EAA2D;AAC3D,qEAAmD;AACnD,wDAAsC;AACtC,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,8DAA4C;AAC5C,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,uEAAqD;AACrD,wDAAsC;AACtC,uDAAqC;AACrC,iFAA+D;AAC/D,wDAAsC;AACtC,wDAAsC;AACtC,yEAAuD;AACvD,iFAA+D;AAE/D,gCAAgC;AAChC,sHAAsH;AACtH,UAAU;AACV,2DAA2D;AAC3D,6DAA2C;AAC3C,qCAAqC;AACrC,uEAAqD;AACrD,sDAAsD;AACtD,uEAAqD;AACrD,gDAAgD;AAChD,iEAA+C;AAE/C,iBAAiB;AACjB,qFAAqF;AACrF,2CAAyB;AACzB,iDAA+B;AAC/B,2DAAyC;AACzC,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,6DAA2C;AAC3C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,4DAA0C"}
|
|
@@ -84,6 +84,12 @@ class CameraManager {
|
|
|
84
84
|
}
|
|
85
85
|
const framesPerSec = 100;
|
|
86
86
|
const animationGroup = new index_1.AnimationGroup(CameraManager.CAMERA_ANIMATION_NAME, this.viewer.scene);
|
|
87
|
+
// it's important to start with the target, as it internally overwrites alpha, beta and radius
|
|
88
|
+
// these values can then be overwritten afterwards if provided on the input of this function
|
|
89
|
+
// for further details see CB-10015
|
|
90
|
+
if (position.target !== undefined) {
|
|
91
|
+
CameraManager._addCameraAnimationToGroup('target', activeCamera.target, position.target, framesPerSec, index_1.Animation.ANIMATIONTYPE_VECTOR3, animationGroup, activeCamera);
|
|
92
|
+
}
|
|
87
93
|
if (position.alpha !== undefined) {
|
|
88
94
|
// transform the target's alpha value into the same turn as the current camera position to avoid movements
|
|
89
95
|
// > 360 degrees
|
|
@@ -98,9 +104,6 @@ class CameraManager {
|
|
|
98
104
|
if (position.radius !== undefined) {
|
|
99
105
|
CameraManager._addCameraAnimationToGroup('radius', activeCamera.radius, position.radius, framesPerSec, index_1.Animation.ANIMATIONTYPE_FLOAT, animationGroup, activeCamera);
|
|
100
106
|
}
|
|
101
|
-
if (position.target !== undefined) {
|
|
102
|
-
CameraManager._addCameraAnimationToGroup('target', activeCamera.target, position.target, framesPerSec, index_1.Animation.ANIMATIONTYPE_VECTOR3, animationGroup, activeCamera);
|
|
103
|
-
}
|
|
104
107
|
// animation is created for 1 second (100 frames), adjust speed ratio according to desired movement time
|
|
105
108
|
const speedRatio = 1000 / durationMs;
|
|
106
109
|
return new Promise(resolve => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -43,6 +43,7 @@ class GltfExportManager {
|
|
|
43
43
|
return GltfExportManager._shouldExportNode(node, excluded);
|
|
44
44
|
}
|
|
45
45
|
},
|
|
46
|
+
shouldExportAnimation: (animation) => !optimizeForAR,
|
|
46
47
|
};
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
@@ -87,7 +88,9 @@ class GltfExportManager {
|
|
|
87
88
|
}
|
|
88
89
|
const newName = `${material.name}_clone`;
|
|
89
90
|
const clonedMaterial = material.clone(newName);
|
|
90
|
-
|
|
91
|
+
// internal metadata may contain large data which slows down the export (CB-10094)
|
|
92
|
+
// it wasn't an issue for materials yet, but still this is safer than to make a deep clone
|
|
93
|
+
clonedMaterial._internalMetadata = null;
|
|
91
94
|
const clonedTextures = clonedMaterial.getActiveTextures();
|
|
92
95
|
// mark all exported textures, so that they will be deleted after the export
|
|
93
96
|
clonedTextures.forEach(texture => (0, metadata_helper_1.setInternalMetadataValue)(texture, 'deleteAfterExport', true));
|
|
@@ -219,8 +222,10 @@ class GltfExportManager {
|
|
|
219
222
|
.filter(rootNode => (0, metadata_helper_1.getInternalMetadataValue)(rootNode, 'deleteAfterExport'))
|
|
220
223
|
.forEach(rootNode => rootNode.dispose());
|
|
221
224
|
this.viewer.scene.materials
|
|
222
|
-
.filter(
|
|
225
|
+
.filter(material => (0, metadata_helper_1.getInternalMetadataValue)(material, 'deleteAfterExport'))
|
|
223
226
|
.forEach(material => material.dispose(false, false));
|
|
227
|
+
// clean up temporary material exchange key for the rest of materials
|
|
228
|
+
this.viewer.scene.materials.forEach(material => (0, metadata_helper_1.clearInternalMetadataValue)(material, 'exchangeMaterialWith'));
|
|
224
229
|
this.viewer.scene.textures
|
|
225
230
|
.filter(texture => (0, metadata_helper_1.getInternalMetadataValue)(texture, 'deleteAfterExport'))
|
|
226
231
|
.forEach(texture => texture.dispose());
|
|
@@ -244,7 +249,10 @@ class GltfExportManager {
|
|
|
244
249
|
const clonedNode = transformNode instanceof index_1.InstancedMesh
|
|
245
250
|
? (0, geometry_helper_1.createMeshFromInstancedMesh)(transformNode, clonedNodeName, clonedParent)
|
|
246
251
|
: transformNode.clone(clonedNodeName, clonedParent, true);
|
|
247
|
-
|
|
252
|
+
// nodes with node geometry have very large internal metadata, this leads to long export times (CB-10094)
|
|
253
|
+
// existing internal metadata is not required for the export so we can just delete it
|
|
254
|
+
// internal metadata will be set some lines beyond!
|
|
255
|
+
clonedNode._internalMetadata = null;
|
|
248
256
|
// exchange material
|
|
249
257
|
if (clonedNode instanceof index_1.Mesh) {
|
|
250
258
|
const exchangeWithMaterial = clonedNode.material && (0, metadata_helper_1.getInternalMetadataValue)(clonedNode.material, 'exchangeMaterialWith');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltf-export-manager.js","sourceRoot":"","sources":["../../../src/manager/gltf-export-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"gltf-export-manager.js","sourceRoot":"","sources":["../../../src/manager/gltf-export-manager.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAekB;AAClB,6DAAkE;AAClE,iEAAmH;AACnH,iEAA6D;AAC7D,iEAIqC;AAErC;;GAEG;AACH,MAAa,iBAAiB;IAuF5B,gBAAgB;IAChB,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QACzC,mFAAmF;QACnF,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,cAAc,CAAC;IAChE,CAAC;IAtFD;;;;;OAKG;IACO,MAAM,CAAC,kBAAkB,CAAC,aAAsB,EAAE,QAA+B;QACzF,OAAO;YACL,gBAAgB,EAAE,UAAU,IAAU;gBACpC,IAAI,aAAa,EAAE;oBACjB,kEAAkE;oBAClE,OAAO,IAAA,0CAAwB,EAAC,IAAI,EAAE,YAAY,CAAY,CAAC;iBAChE;qBAAM;oBACL,4EAA4E;oBAC5E,OAAO,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;iBAC5D;YACH,CAAC;YAED,qBAAqB,EAAE,CAAC,SAAoB,EAAE,EAAE,CAAC,CAAC,aAAa;SAChE,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,MAAM,CAAC,iBAAiB,CAAC,IAAU,EAAE,QAA+B;QAC5E,IAAI,CAAC,CAAC,IAAI,YAAY,qBAAa,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC;SACd;QACD,mHAAmH;QACnH,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;YACrB,OAAO,KAAK,CAAC;SACd;QACD,IAAI,QAAQ,IAAI,IAAA,gCAAc,EAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YAC9C,OAAO,KAAK,CAAC;SACd;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;OASG;IACO,MAAM,CAAC,iBAAiB,CAAC,QAAkB;QACnD,MAAM,YAAY,GAAG,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAClD,MAAM,kBAAkB,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,sBAAc,CAAC,CAAC;QAC3F,MAAM,uBAAuB,GAAG,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,YAAY,2BAAmB,CAAC,CAAC;QACrG,IAAI,kBAAkB,IAAI,uBAAuB,EAAE;YACjD,MAAM,kBAAkB,GAAG;gBACzB,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE;gBAC5C,uBAAuB,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE;aACxD;iBACE,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CACV,+BAA+B,QAAQ,CAAC,IAAI,gEAAgE,kBAAkB,iGAAiG,CAChO,CAAC;YAEF,OAAO;SACR;QAED,MAAM,OAAO,GAAG,GAAG,QAAQ,CAAC,IAAI,QAAQ,CAAC;QACzC,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAE,CAAC;QAChD,kFAAkF;QAClF,0FAA0F;QAC1F,cAAc,CAAC,iBAAiB,GAAG,IAAI,CAAC;QACxC,MAAM,cAAc,GAAG,cAAc,CAAC,iBAAiB,EAAE,CAAC;QAE1D,4EAA4E;QAC5E,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,0CAAwB,EAAC,OAAO,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC;QAEhG,IAAA,0CAAwB,EAAC,QAAQ,EAAE,sBAAsB,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACpF,IAAA,0CAAwB,EAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;IACtE,CAAC;IAQD;;;;;;OAMG;IACU,SAAS,CACpB,QAAQ,GAAG,gBAAgB,EAC3B,gBAAyB,KAAK,EAC9B,QAA+B;;YAE/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEtD,MAAM,OAAO,GAAG,MAAM,mBAAW,CAAC,QAAQ,CACxC,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,OAAO,EACP,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC9D,CAAC;YAEF,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;YAE7C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,iFAAiF;YACjF,IAAI,OAAO,YAAY,IAAI,EAAE;gBAC3B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;oBAC9B,QAAQ,IAAI,MAAM,CAAC;iBACpB;gBACD,OAAO,IAAI,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;aACtC;iBAAM;gBACL,8BAA8B;gBAC9B,OAAO,SAAS,CAAC;aAClB;QACH,CAAC;KAAA;IAED;;;;;;OAMG;IACU,gBAAgB,CAC3B,QAAgB,EAChB,gBAAyB,KAAK,EAC9B,QAA+B;;YAE/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEtD,MAAM,IAAI,GAAG,MAAM,mBAAW,CAAC,SAAS,CACtC,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,QAAQ,EACR,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC9D,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;YAErB,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QACzC,CAAC;KAAA;IAED;;;;;;OAMG;IACU,eAAe,CAC1B,QAAgB,EAChB,gBAAyB,KAAK,EAC9B,QAA+B;;YAE/B,MAAM,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEtD,MAAM,GAAG,GAAG,MAAM,mBAAW,CAAC,QAAQ,CACpC,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,QAAQ,EACR,iBAAiB,CAAC,kBAAkB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAC9D,CAAC;YACF,GAAG,CAAC,aAAa,EAAE,CAAC;YAEpB,MAAM,IAAI,CAAC,kBAAkB,CAAC,aAAa,CAAC,CAAC;QAC/C,CAAC;KAAA;IAED;;;OAGG;IACa,iBAAiB,CAAC,aAAsB,EAAE,QAA+B;;YACvF,IAAI,CAAC,aAAa,EAAE;gBAClB,4DAA4D;gBAC5D,OAAO;aACR;YAED,mGAAmG;YACnG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAE7B,iCAAiC;YACjC,mEAAmE;YACnE,0FAA0F;YAC1F,mEAAmE;YACnE,qEAAqE;YACrE,kHAAkH;YAClH,gHAAgH;YAChH,4BAA4B;YAC5B,MAAM,kBAAkB,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,gBAAgB,CAAC,CAAC;YAC9F,IAAI,CAAC,kBAAkB,EAAE;gBACvB,oEAAoE;gBACpE,qDAAqD;gBACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;gBAChD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC;gBAEnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;qBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,YAAY,mBAAW,CAAC;qBACnD,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,QAAuB,CAAC,CAAC,CAAC;aACtF;YAED,+FAA+F;YAC/F,iGAAiG;YACjG,kHAAkH;YAClH,iBAAiB;YACjB,8EAA8E;YAC9E,8GAA8G;YAC9G,iDAAiD;YACjD,0GAA0G;YAC1G,MAAM,cAAc,GAAG,IAAI,qBAAa,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACjG,cAAc,CAAC,OAAO,GAAG,IAAI,eAAO,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/C,IAAA,0CAAwB,EAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;YAC7D,IAAA,0CAAwB,EAAC,cAAc,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;YAEpE,mHAAmH;YACnH,SAAS;YACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,iBAAiB,CAAC,iBAAiB,CAAC;iBACzE,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;YAEvF,2EAA2E;YAC3E,sGAAsG;YACtG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,oCAAkB,EAAC,IAAY,CAAC,CAAC,CAAC;YAEtF,2GAA2G;YAC3G,wEAAwE;YACxE,IAAI,CAAC,wBAAwB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAA,qCAAmB,EAAC,IAAqB,CAAC,CAAC,CAAC;QAC9F,CAAC;KAAA;IAED;;OAEG;IACa,kBAAkB,CAAC,aAAsB;;YACvD,IAAI,CAAC,aAAa,EAAE;gBAClB,0EAA0E;gBAC1E,OAAO;aACR;YAED,uFAAuF;YACvF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAA,0CAAwB,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;iBAC3E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YAE3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS;iBACxB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAA,0CAAwB,EAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;iBAC3E,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;YACvD,qEAAqE;YACrE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAA,4CAA0B,EAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC,CAAC;YAE9G,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ;iBACvB,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,IAAA,0CAAwB,EAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;iBACzE,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;YAEzC,sDAAsD;YACtD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;QAChC,CAAC;KAAA;IAED;;;OAGG;IACO,qBAAqB,CAAC,IAAU,EAAE,YAA2B,EAAE,QAA+B;QACtG,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE;YACxD,OAAO;SACR;QAED,2CAA2C;QAC3C,MAAM,aAAa,GAAG,IAAqB,CAAC;QAE5C,2EAA2E;QAC3E,MAAM,cAAc,GAAG,GAAG,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,QAAQ,EAAE,CAAC;QACzE,MAAM,UAAU,GACd,aAAa,YAAY,qBAAa;YACpC,CAAC,CAAC,IAAA,6CAA2B,EAAC,aAAa,EAAE,cAAc,EAAE,YAAY,CAAC;YAC1E,CAAC,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAE,CAAC;QAE/D,yGAAyG;QACzG,qFAAqF;QACrF,mDAAmD;QACnD,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC;QAEpC,oBAAoB;QACpB,IAAI,UAAU,YAAY,YAAI,EAAE;YAC9B,MAAM,oBAAoB,GACxB,UAAU,CAAC,QAAQ,IAAI,IAAA,0CAAwB,EAAC,UAAU,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAC;YAC/F,IAAI,oBAAoB,EAAE;gBACxB,UAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,oBAA8B,CAAC,CAAC;aAC/F;SACF;QAED,uCAAuC;QACvC,IAAA,0CAAwB,EAAC,UAAU,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QACzD,IAAA,0CAAwB,EAAC,UAAU,EAAE,mBAAmB,EAAE,IAAI,CAAC,CAAC;QAEhE,kBAAkB;QAClB,MAAM,MAAM,GAAG,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC1D,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnF,CAAC;IAED;;OAEG;IACO,wBAAwB,CAAC,UAAoB;QACrD,MAAM,KAAK,GAAoB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,EAAE;YACf,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;SACjD;QAED,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,CAChC,IAAI,CAAC,EAAE,CACL,IAAA,0CAAwB,EAAC,IAAI,EAAE,YAAY,CAAC;YAC5C,mEAAmE;YACnE,oFAAoF;YACpF,IAAI,CAAC,IAAI,KAAK,iBAAiB,CAAC,iBAAiB,CACpD,CAAC;QAEF,OAAO,aAAa,CAAC;IACvB,CAAC;;AAtUH,8CAuUC;AAtU2B,mCAAiB,GAAG,iBAAiB,CAAC"}
|
|
@@ -16,8 +16,8 @@ export declare type NodeNamingStrategy = (node: TransformNode, newModelName: str
|
|
|
16
16
|
*/
|
|
17
17
|
export declare type TagNamingStrategy = (tag: string, newModelName: string) => string;
|
|
18
18
|
export declare type ModelCloneOptions = {
|
|
19
|
-
nodeNamingStrategy
|
|
20
|
-
tagNamingStrategy
|
|
19
|
+
nodeNamingStrategy?: NodeNamingStrategy;
|
|
20
|
+
tagNamingStrategy?: TagNamingStrategy;
|
|
21
21
|
};
|
|
22
22
|
declare type Model = {
|
|
23
23
|
name: string;
|
package/package.json
CHANGED
package/src/dev.ts
CHANGED
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getMaterial,
|
|
7
7
|
getViewerSettings,
|
|
8
8
|
} from '../assets/index';
|
|
9
|
-
import { mockMaterials } from '../assets/mock-materials';
|
|
9
|
+
import { mockMaterials } from '../assets/utils/mock-materials';
|
|
10
10
|
import { set } from 'lodash-es';
|
|
11
11
|
|
|
12
12
|
document.addEventListener('DOMContentLoaded', main);
|
package/src/index.ts
CHANGED
|
@@ -1,18 +1,8 @@
|
|
|
1
1
|
/// <reference path="global-types.d.ts" />
|
|
2
2
|
// Babylon.js extensions
|
|
3
|
-
|
|
4
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions
|
|
5
|
-
import '@babylonjs/
|
|
6
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness';
|
|
7
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen';
|
|
8
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular';
|
|
9
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency';
|
|
10
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission';
|
|
11
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit';
|
|
12
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants';
|
|
13
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu';
|
|
14
|
-
import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
|
|
15
|
-
import '@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform';
|
|
3
|
+
// All gltf extensions to support maximum feature set
|
|
4
|
+
import '@babylonjs/loaders/glTF/2.0/Extensions';
|
|
5
|
+
import '@babylonjs/serializers/glTF/2.0/Extensions';
|
|
16
6
|
|
|
17
7
|
// Babylon.js modules
|
|
18
8
|
// All used Babylyon.js modules should be re-exported here.
|
|
@@ -190,6 +190,20 @@ export class CameraManager {
|
|
|
190
190
|
const framesPerSec = 100;
|
|
191
191
|
const animationGroup = new AnimationGroup(CameraManager.CAMERA_ANIMATION_NAME, this.viewer.scene);
|
|
192
192
|
|
|
193
|
+
// it's important to start with the target, as it internally overwrites alpha, beta and radius
|
|
194
|
+
// these values can then be overwritten afterwards if provided on the input of this function
|
|
195
|
+
// for further details see CB-10015
|
|
196
|
+
if (position.target !== undefined) {
|
|
197
|
+
CameraManager._addCameraAnimationToGroup(
|
|
198
|
+
'target',
|
|
199
|
+
activeCamera.target,
|
|
200
|
+
position.target,
|
|
201
|
+
framesPerSec,
|
|
202
|
+
Animation.ANIMATIONTYPE_VECTOR3,
|
|
203
|
+
animationGroup,
|
|
204
|
+
activeCamera
|
|
205
|
+
);
|
|
206
|
+
}
|
|
193
207
|
if (position.alpha !== undefined) {
|
|
194
208
|
// transform the target's alpha value into the same turn as the current camera position to avoid movements
|
|
195
209
|
// > 360 degrees
|
|
@@ -229,17 +243,6 @@ export class CameraManager {
|
|
|
229
243
|
activeCamera
|
|
230
244
|
);
|
|
231
245
|
}
|
|
232
|
-
if (position.target !== undefined) {
|
|
233
|
-
CameraManager._addCameraAnimationToGroup(
|
|
234
|
-
'target',
|
|
235
|
-
activeCamera.target,
|
|
236
|
-
position.target,
|
|
237
|
-
framesPerSec,
|
|
238
|
-
Animation.ANIMATIONTYPE_VECTOR3,
|
|
239
|
-
animationGroup,
|
|
240
|
-
activeCamera
|
|
241
|
-
);
|
|
242
|
-
}
|
|
243
246
|
|
|
244
247
|
// animation is created for 1 second (100 frames), adjust speed ratio according to desired movement time
|
|
245
248
|
const speedRatio = 1000 / durationMs;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import {
|
|
2
|
+
Animation,
|
|
2
3
|
DynamicTexture,
|
|
3
4
|
ExcludedGeometryList,
|
|
4
5
|
GLTF2Export,
|
|
@@ -16,7 +17,11 @@ import {
|
|
|
16
17
|
import { getIsScaledDownDevice } from '../internal/device-helper';
|
|
17
18
|
import { bakeGeometryOfMesh, createMeshFromInstancedMesh, resetTransformation } from '../internal/geometry-helper';
|
|
18
19
|
import { isNodeExcluded } from '../internal/geometry-helper';
|
|
19
|
-
import {
|
|
20
|
+
import {
|
|
21
|
+
clearInternalMetadataValue,
|
|
22
|
+
getInternalMetadataValue,
|
|
23
|
+
setInternalMetadataValue,
|
|
24
|
+
} from '../internal/metadata-helper';
|
|
20
25
|
|
|
21
26
|
/**
|
|
22
27
|
* Manager for gltf export and augmented reality features
|
|
@@ -43,6 +48,8 @@ export class GltfExportManager {
|
|
|
43
48
|
return GltfExportManager._shouldExportNode(node, excluded);
|
|
44
49
|
}
|
|
45
50
|
},
|
|
51
|
+
|
|
52
|
+
shouldExportAnimation: (animation: Animation) => !optimizeForAR,
|
|
46
53
|
};
|
|
47
54
|
}
|
|
48
55
|
|
|
@@ -94,7 +101,9 @@ export class GltfExportManager {
|
|
|
94
101
|
|
|
95
102
|
const newName = `${material.name}_clone`;
|
|
96
103
|
const clonedMaterial = material.clone(newName)!;
|
|
97
|
-
|
|
104
|
+
// internal metadata may contain large data which slows down the export (CB-10094)
|
|
105
|
+
// it wasn't an issue for materials yet, but still this is safer than to make a deep clone
|
|
106
|
+
clonedMaterial._internalMetadata = null;
|
|
98
107
|
const clonedTextures = clonedMaterial.getActiveTextures();
|
|
99
108
|
|
|
100
109
|
// mark all exported textures, so that they will be deleted after the export
|
|
@@ -269,8 +278,10 @@ export class GltfExportManager {
|
|
|
269
278
|
.forEach(rootNode => rootNode.dispose());
|
|
270
279
|
|
|
271
280
|
this.viewer.scene.materials
|
|
272
|
-
.filter(
|
|
281
|
+
.filter(material => getInternalMetadataValue(material, 'deleteAfterExport'))
|
|
273
282
|
.forEach(material => material.dispose(false, false));
|
|
283
|
+
// clean up temporary material exchange key for the rest of materials
|
|
284
|
+
this.viewer.scene.materials.forEach(material => clearInternalMetadataValue(material, 'exchangeMaterialWith'));
|
|
274
285
|
|
|
275
286
|
this.viewer.scene.textures
|
|
276
287
|
.filter(texture => getInternalMetadataValue(texture, 'deleteAfterExport'))
|
|
@@ -299,7 +310,11 @@ export class GltfExportManager {
|
|
|
299
310
|
transformNode instanceof InstancedMesh
|
|
300
311
|
? createMeshFromInstancedMesh(transformNode, clonedNodeName, clonedParent)
|
|
301
312
|
: transformNode.clone(clonedNodeName, clonedParent, true)!;
|
|
302
|
-
|
|
313
|
+
|
|
314
|
+
// nodes with node geometry have very large internal metadata, this leads to long export times (CB-10094)
|
|
315
|
+
// existing internal metadata is not required for the export so we can just delete it
|
|
316
|
+
// internal metadata will be set some lines beyond!
|
|
317
|
+
clonedNode._internalMetadata = null;
|
|
303
318
|
|
|
304
319
|
// exchange material
|
|
305
320
|
if (clonedNode instanceof Mesh) {
|
|
@@ -34,8 +34,8 @@ export type NodeNamingStrategy = (node: TransformNode, newModelName: string) =>
|
|
|
34
34
|
export type TagNamingStrategy = (tag: string, newModelName: string) => string;
|
|
35
35
|
|
|
36
36
|
export type ModelCloneOptions = {
|
|
37
|
-
nodeNamingStrategy
|
|
38
|
-
tagNamingStrategy
|
|
37
|
+
nodeNamingStrategy?: NodeNamingStrategy;
|
|
38
|
+
tagNamingStrategy?: TagNamingStrategy;
|
|
39
39
|
};
|
|
40
40
|
|
|
41
41
|
type Model = {
|