@combeenation/3d-viewer 5.0.0-ar1 → 5.0.0-ar2
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/api/classes/viewer.d.ts +9 -0
- package/dist/lib-cjs/api/classes/viewer.js +16 -2
- package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
- package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +37 -6
- package/dist/lib-cjs/api/manager/gltfExportManager.js +129 -15
- package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
- package/dist/lib-cjs/api/util/globalTypes.d.ts +0 -1
- package/package.json +1 -1
- package/src/api/classes/viewer.ts +18 -2
- package/src/api/manager/gltfExportManager.ts +115 -9
- package/src/api/util/globalTypes.ts +0 -2
|
@@ -25,6 +25,7 @@ export declare class Viewer extends EventBroadcaster {
|
|
|
25
25
|
protected _gltfExportManager: GltfExportManager | null;
|
|
26
26
|
protected _variantInstances: VariantInstanceManager | null;
|
|
27
27
|
protected _cloneMaterialsOnMutation: boolean;
|
|
28
|
+
protected _isRenderLoopPaused: boolean;
|
|
28
29
|
static version: string;
|
|
29
30
|
/**
|
|
30
31
|
* Constructor
|
|
@@ -146,6 +147,14 @@ export declare class Viewer extends EventBroadcaster {
|
|
|
146
147
|
* Show coordinate system with given dimension (for debugging purpose).
|
|
147
148
|
*/
|
|
148
149
|
showWorldCoordinates(dimension: number): void;
|
|
150
|
+
/**
|
|
151
|
+
* Pause render loop.
|
|
152
|
+
*/
|
|
153
|
+
pauseRendering(): void;
|
|
154
|
+
/**
|
|
155
|
+
* Resume render loop when paused.
|
|
156
|
+
*/
|
|
157
|
+
resumeRendering(): void;
|
|
149
158
|
/**
|
|
150
159
|
* @emits {@link Event.SCENE_PROCESSING_START}
|
|
151
160
|
* @emits {@link Event.SCENE_PROCESSING_END}
|
|
@@ -52,6 +52,7 @@ var Viewer = /** @class */ (function (_super) {
|
|
|
52
52
|
// default value is `true` ATM for compatibility reasons
|
|
53
53
|
// in the future material cloning should be the edge case
|
|
54
54
|
_this._cloneMaterialsOnMutation = true;
|
|
55
|
+
_this._isRenderLoopPaused = false;
|
|
55
56
|
return _this;
|
|
56
57
|
}
|
|
57
58
|
Object.defineProperty(Viewer.prototype, "scene", {
|
|
@@ -215,7 +216,7 @@ var Viewer = /** @class */ (function (_super) {
|
|
|
215
216
|
case 12:
|
|
216
217
|
// create gltf export manager
|
|
217
218
|
_c = this;
|
|
218
|
-
return [4 /*yield*/, gltfExportManager_1.GltfExportManager.create(this
|
|
219
|
+
return [4 /*yield*/, gltfExportManager_1.GltfExportManager.create(this)];
|
|
219
220
|
case 13:
|
|
220
221
|
// create gltf export manager
|
|
221
222
|
_c._gltfExportManager = _d.sent();
|
|
@@ -230,7 +231,8 @@ var Viewer = /** @class */ (function (_super) {
|
|
|
230
231
|
this.broadcastEvent(event_1.Event.BOOTSTRAP_END, this);
|
|
231
232
|
// render loop
|
|
232
233
|
this.engine.runRenderLoop(function () {
|
|
233
|
-
_this.
|
|
234
|
+
if (!_this._isRenderLoopPaused)
|
|
235
|
+
_this.scene.render();
|
|
234
236
|
});
|
|
235
237
|
return [2 /*return*/, this];
|
|
236
238
|
}
|
|
@@ -525,6 +527,18 @@ var Viewer = /** @class */ (function (_super) {
|
|
|
525
527
|
var zChar = makeTextPlane('Z', 'blue', dimension / 10);
|
|
526
528
|
zChar.position = new math_vector_1.Vector3(0, 0.05 * dimension, 0.9 * dimension);
|
|
527
529
|
};
|
|
530
|
+
/**
|
|
531
|
+
* Pause render loop.
|
|
532
|
+
*/
|
|
533
|
+
Viewer.prototype.pauseRendering = function () {
|
|
534
|
+
this._isRenderLoopPaused = true;
|
|
535
|
+
};
|
|
536
|
+
/**
|
|
537
|
+
* Resume render loop when paused.
|
|
538
|
+
*/
|
|
539
|
+
Viewer.prototype.resumeRendering = function () {
|
|
540
|
+
this._isRenderLoopPaused = false;
|
|
541
|
+
};
|
|
528
542
|
/**
|
|
529
543
|
* @emits {@link Event.SCENE_PROCESSING_START}
|
|
530
544
|
* @emits {@link Event.SCENE_PROCESSING_END}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../../../src/api/classes/viewer.ts"],"names":[],"mappings":";;;;AACA,2EAA0E;AAE1E,qEAAoE;AACpE,yDAAwD;AACxD,wEAAuE;AACvE,+EAA8E;AAC9E,oFAAmF;AACnF,+DAA0D;AAC1D,iEAA4D;AAC5D,oDAAmD;AACnD,wEAAuE;AAEvE,8EAA6E;AAC7E,uCAAqC;AACrC,uDAA+C;AAC/C,qDAAoD;AACpD,gEAA+D;AAC/D,kEAAiE;AACjE,wDAAuD;AACvD,4EAA2E;AAC3E,oDAAmD;AACnD,yDAA4D;AAC5D,iCAAgC;AAChC,uDAAsD;AACtD,yCAAwC;AACxC,qCAAoC;AAGpC;;;;;;;;GAQG;AACH;IAA4B,kCAAgB;IAiB1C;;OAEG;IACH,gBAAmC,MAAyB,EAAY,aAAqC;QAA7G,YACE,iBAAO,SACR;QAFkC,YAAM,GAAN,MAAM,CAAmB;QAAY,mBAAa,GAAb,aAAa,CAAwB;QAnBnG,YAAM,GAAiB,IAAI,CAAC;QAE5B,uBAAiB,GAA4B,IAAI,CAAC;QAElD,mBAAa,GAAwB,IAAI,CAAC;QAE1C,wBAAkB,GAA6B,IAAI,CAAC;QAEpD,uBAAiB,GAAkC,IAAI,CAAC;QAElE,wDAAwD;QACxD,yDAAyD;QAC/C,+BAAyB,GAAY,IAAI,CAAC;;IASpD,CAAC;IAOD,sBAAI,yBAAK;QALT;;;;WAIG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;aACpD;YACD,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC;;;OAAA;IAOD,sBAAI,gCAAY;QALhB;;;;WAIG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC3D;YACD,OAAO,IAAI,CAAC,aAAa,CAAC;QAC5B,CAAC;;;OAAA;IAOD,sBAAI,qCAAiB;QALrB;;;;WAIG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;gBAC5B,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAChE;YACD,OAAO,IAAI,CAAC,kBAAkB,CAAC;QACjC,CAAC;;;OAAA;IAKD,sBAAI,0BAAM;QAHV;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QAChC,CAAC;;;OAAA;IAOD,sBAAI,oCAAgB;QALpB;;;;WAIG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,KAAK,CAAC,qCAAqC,CAAC,CAAC;aACpD;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;;;OAAA;IAOD,sBAAI,oCAAgB;QALpB;;;;WAIG;aACH;YACE,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;gBAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC3D;YACD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;;;OAAA;IAKD,sBAAI,4CAAwB;QAH5B;;WAEG;aACH;YACE,OAAO,IAAI,CAAC,yBAAyB,CAAC;QACxC,CAAC;;;OAAA;IAED;;;;;;;;;;;OAWG;IACU,0BAAS,GAAtB;;;;;;;wBACE,IAAI,CAAC,cAAc,CAAC,aAAK,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;6BAE7C,oBAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,EAA5B,wBAA4B;wBAClB,qBAAM,yBAAQ,CAAgB,IAAI,CAAC,aAAa,CAAC,EAAA;;wBAA7D,SAAS,GAAG,SAAiD,CAAC;;;wBAE9D,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC;;;wBAEjC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;4BACpB,MAAM,IAAI,KAAK,CAAC,gDAA8C,CAAC,CAAC;yBACjE;wBACD,kBAAkB;wBAClB,yBAAW,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;6BAElC,oBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAzB,wBAAyB;wBACT,qBAAM,yBAAQ,CAAY,SAAS,CAAC,KAAK,CAAC,EAAA;;wBAAtD,SAAS,GAAG,SAA0C;wBAC5D,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;;;wBAE9B,KAAA,IAAI,CAAA;wBAAU,qBAAM,IAAI,CAAC,SAAS,EAAE,EAAA;;wBAApC,GAAK,MAAM,GAAG,SAAsB,CAAC;wBAEjB,qBAAM,iBAAO,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,CAAC,EAAA;;wBAAxD,WAAW,GAAG,SAA0C;wBAC9D,KAAA,IAAI,CAAA;wBAAqB,qBAAM,+CAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAA;;wBAAzE,GAAK,iBAAiB,GAAG,SAAgD,CAAC;6BAEtE,SAAS,CAAC,KAAK,EAAf,yBAAe;6BACb,oBAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,EAAzB,yBAAyB;wBACT,qBAAM,yBAAQ,CAAY,SAAS,CAAC,KAAK,CAAC,EAAA;;wBAAtD,SAAS,GAAG,SAA0C;wBAC5D,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC;;6BAE9B,qBAAM,IAAI,CAAC,sBAAsB,EAAE,EAAA;;wBAAnC,SAAmC,CAAC;;;wBAEtC,6BAA6B;wBAC7B,KAAA,IAAI,CAAA;wBAAsB,qBAAM,qCAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAA;;wBADpE,6BAA6B;wBAC7B,GAAK,kBAAkB,GAAG,SAA0C,CAAC;wBACrE,iBAAiB;wBACjB,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,yBAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;wBACzE,uCAAuC;wBACvC,qBAAM,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAA;;wBADjC,uCAAuC;wBACvC,SAAiC,CAAC;wBAClC,qBAAqB;wBACrB,IAAI,CAAC,cAAc,CAAC,aAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;wBAC/C,cAAc;wBACd,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC;4BACxB,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;wBACtB,CAAC,CAAC,CAAC;wBACH,sBAAO,IAAI,EAAC;;;;KACb;IAED;;;OAGG;IACU,iCAAgB,GAA7B,UAA8B,OAA2B;;;;;;oCACnD,OAAO,CAAC,GAAG,CAAC,QAAQ,0CAAE,WAAW,GAAG,QAAQ,CAAC,KAAK;wBACpD,yEAAa,yCAAyC,CAAC,sBAAsB,OAAC;;wBAA9E,SAA8E,CAAC;wBAC/E,qBAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAA;;wBAAzC,SAAyC,CAAC;;;wBAE1C,OAAO,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;;;;;;KAE9E;IAED;;OAEG;IACI,wCAAuB,GAA9B;QAAA,iBAKC;QAJC,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAA,eAAe;YAC/C,KAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,uBAAM,GAAb;QACE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACU,wBAAO,GAApB,UACE,mBAA2B,EAC3B,iBAAqC,EACrC,cAAkC;;;;;4BAEV,qBAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAA;;wBAAtE,eAAe,GAAG,SAAoD;wBAC5E,sBAAO,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,EAAC;;;;KACnE;IAED;;;OAGG;IACU,wBAAO,GAApB,UACE,mBAA2B,EAC3B,iBAAqC,EACrC,cAAkC;;;;;4BAEV,qBAAM,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAA;;wBAAtE,eAAe,GAAG,SAAoD;wBAC5E,sBAAO,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,EAAC;;;;KACnE;IAED;;;;OAIG;IACI,6BAAY,GAAnB,UAAoB,SAAiB,EAAE,KAAqB;QAArB,sBAAA,EAAA,YAAqB;QAC1D,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE;YACV,IAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;YAC7C,IAAI,YAAY,EAAE;gBAChB,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAG,CAAC,CAAC;aAC/D;YACD,IAAI,KAAK,EAAE;gBACT,MAAM,CAAC,YAAY,EAAE,CAAC;aACvB;YACD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAG,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,CAAC,aAAK,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;SACpD;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAiB,SAAS,kBAAc,CAAC,CAAC;SAC3D;QACD,6DAA6D;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACU,mCAAkB,GAA/B,UACE,SAAuC,EACvC,SAAwC;;;gBAExC,sBAAO,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,CAAC,EAAC;;;KACvG;IAED;;OAEG;IACI,2BAAU,GAAjB,UAAkB,QAA6B;QAA/C,iBAqBC;QApBC,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;;YACjC,IAAI,CAAC,KAAI,CAAC,MAAM,EAAE;gBAChB,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;aACjC;YACD,IAAI,CAAC,KAAI,CAAC,KAAK,EAAE;gBACf,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC;aAChC;YACD,KAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,oGAAoG;YACzH,iCAAe,CAAC,iCAAiC,CAC/C,KAAI,CAAC,MAAM,EACX,KAAI,CAAC,YAAY,CAAC,YAAY,QAC9B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,EAAE,KAAK,EAAE,KAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,KAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EACtF,OAAO,QACP,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,mCAAI,WAAW,QACjC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,OAAO,mCAAI,CAAC,QACtB,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,mCAAI,KAAK,QAC/B,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,mCAAI,gBAAgB,QACtC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,aAAa,mCAAI,KAAK,CACjC,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACU,mCAAkB,GAA/B;;;;4BACS,qBAAM,yCAAmB,CAAC,uBAAuB,CAAC,cAAc,CAAC,EAAA;4BAAxE,sBAAO,SAAiE,EAAC;;;;KAC1E;IAED;;OAEG;IACU,qCAAoB,GAAjC;;;;gBACE,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;oBAClC,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;iBAChE;gBACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,iEAAiE;gBAChF,MAAM,GAAG,kBAAkB,CAAC;gBAE5B,KAAe,IAAI,CAAC,KAAK,CAAC,MAAM;qBACnC,MAAM,CAAC,UAAA,IAAI;oBACV,IAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnC,wEAAwE;oBACxE,IAAM,aAAa,GAAG,MAAM,KAAK,IAAI,CAAC,EAAE,CAAC;oBACzC,4CAA4C;oBAC5C,IAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;oBAC1E,OAAO,SAAS,IAAI,aAAa,IAAI,gBAAgB,CAAC;gBACxD,CAAC,CAAC;qBACD,MAAM,CACL,UAAC,aAAa,EAAE,OAAO,EAAE,GAAG;oBAC1B,IAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC;oBACnD,iGAAiG;oBACjG,IAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACnG,IAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,qBAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;oBACnG,OAAO,EAAE,GAAG,KAAA,EAAE,GAAG,KAAA,EAAE,CAAC;gBACtB,CAAC,EACD,EAAE,GAAG,EAAE,IAAI,qBAAO,EAAE,EAAE,GAAG,EAAE,IAAI,qBAAO,EAAE,EAAE,CAC3C,EAlBK,GAAG,SAAA,EAAE,GAAG,SAAA,CAkBZ;gBAEA,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,MAAM,CAAS,CAAC;gBAC3D,IAAI,CAAC,WAAW,EAAE;oBAChB,WAAW,GAAG,IAAI,WAAI,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC5C;gBACD,WAAW,CAAC,eAAe,CAAC,IAAI,2BAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;gBACxD,sBAAO,WAAW,EAAC;;;KACpB;IAED;;OAEG;IACU,sCAAqB,GAAlC,UAAmC,QAA4B;;;;;;wBAEvD,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;wBAC7C,IAAI,CAAC,YAAY,EAAE;4BACjB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;yBACzE;wBACD,IAAI,CAAC,CAAC,YAAY,YAAY,iCAAe,CAAC,EAAE;4BACxC,aAAa,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC;4BAClD,MAAM,IAAI,KAAK,CAAC,sBAAmB,aAAa,wDAAoD,CAAC,CAAC;yBACvG;wBAGmB,qBAAM,IAAI,CAAC,oBAAoB,EAAE,EAAA;;wBAA/C,WAAW,GAAG,SAAiC;wBAG/C,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;wBACxE,qBAAM,IAAI,CAAC,4BAA4B,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAA;;wBAA7E,SAA6E,CAAC;wBAE9E,2BAA2B;wBAC3B,YAAY,CAAC,OAAO,EAAE,CAAC;;;;;KACxB;IAED;;;OAGG;IACU,sBAAK,GAAlB;;;;4BACE,qBAAM,IAAI,CAAC,OAAO,EAAE,EAAA;;wBAApB,SAAoB,CAAC;wBACrB,sBAAO,IAAI,CAAC,SAAS,EAAE,EAAC;;;;KACzB;IAED;;;;;OAKG;IACI,wBAAO,GAAd;QACE,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACrB,yBAAW,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACI,qCAAoB,GAA3B,UAA4B,SAAiB;QAC3C,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,IAAM,aAAa,GAAG,UAAU,IAAY,EAAE,KAAa,EAAE,IAAY;YACvE,IAAM,cAAc,GAAG,IAAI,+BAAc,CAAC,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC7E,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC;YAC/B,cAAc,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;YACpF,IAAM,KAAK,GAAG,WAAI,CAAC,WAAW,CAAC,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YAC/D,KAAK,CAAC,QAAQ,GAAG,IAAI,mCAAgB,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAClE,KAAK,CAAC,QAAQ,CAAC,eAAe,GAAG,KAAK,CAAC;YACvC,aAAa;YACb,KAAK,CAAC,QAAQ,CAAC,aAAa,GAAG,IAAI,mBAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACnD,aAAa;YACb,KAAK,CAAC,QAAQ,CAAC,cAAc,GAAG,cAAc,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QACF,IAAM,KAAK,GAAG,WAAI,CAAC,WAAW,CAC5B,OAAO,EACP;YACE,qBAAO,CAAC,IAAI,EAAE;YACd,IAAI,qBAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,qBAAO,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;YAClD,IAAI,qBAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;YAC5B,IAAI,qBAAO,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC;SACpD,EACD,KAAK,CACN,CAAC;QACF,KAAK,CAAC,KAAK,GAAG,IAAI,mBAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,IAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;QACxD,KAAK,CAAC,QAAQ,GAAG,IAAI,qBAAO,CAAC,GAAG,GAAG,SAAS,EAAE,CAAC,IAAI,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;QACpE,IAAM,KAAK,GAAG,WAAI,CAAC,WAAW,CAC5B,OAAO,EACP;YACE,qBAAO,CAAC,IAAI,EAAE;YACd,IAAI,qBAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5B,IAAI,qBAAO,CAAC,CAAC,IAAI,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC;YACnD,IAAI,qBAAO,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;YAC5B,IAAI,qBAAO,CAAC,IAAI,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC;SACnD,EACD,KAAK,CACN,CAAC;QACF,KAAK,CAAC,KAAK,GAAG,IAAI,mBAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,IAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;QAC1D,KAAK,CAAC,QAAQ,GAAG,IAAI,qBAAO,CAAC,CAAC,EAAE,GAAG,GAAG,SAAS,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,CAAC;QACpE,IAAM,KAAK,GAAG,WAAI,CAAC,WAAW,CAC5B,OAAO,EACP;YACE,qBAAO,CAAC,IAAI,EAAE;YACd,IAAI,qBAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YAC5B,IAAI,qBAAO,CAAC,CAAC,EAAE,CAAC,IAAI,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;YACnD,IAAI,qBAAO,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC;YAC5B,IAAI,qBAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;SACnD,EACD,KAAK,CACN,CAAC;QACF,KAAK,CAAC,KAAK,GAAG,IAAI,mBAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,IAAM,KAAK,GAAG,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,GAAG,EAAE,CAAC,CAAC;QACzD,KAAK,CAAC,QAAQ,GAAG,IAAI,qBAAO,CAAC,CAAC,EAAE,IAAI,GAAG,SAAS,EAAE,GAAG,GAAG,SAAS,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACa,0BAAS,GAAzB;;;;;;;;wBACQ,SAAS,GAAG,yBAAW,CAAC,GAAG,CAAY,OAAO,CAAC,CAAC;wBACtD,IAAI,CAAC,cAAc,CAAC,aAAK,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAC;wBACvD,MAAM,GAAG,IAAI,eAAM,CACvB,IAAI,CAAC,MAA2B,cAChC,SAAS,CAAC,MAAM,0CAAE,YAAY,mCAAI,KAAK,QACvC,SAAS,CAAC,MAAM,0CAAE,OAAO,CAC1B,CAAC;wBACY,qBAAM,uBAAU,CAAC,MAAM,EAAE,SAAS,CAAC,EAAA;;wBAA3C,KAAK,GAAG,SAAmC;wBACjD,IAAI,SAAS,CAAC,WAAW,EAAE;4BACzB,IAAI,+BAAc,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;4BACrC,KAAK,CAAC,aAAa,GAAG,UAAC,YAA2B,EAAE,QAAqB;gCACvE,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;oCACjB,OAAO;iCACR;gCACD,IAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC;gCACjC,KAAI,CAAC,cAAc,CAAC,aAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;gCAC7F,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,EAAE;oCAC1B,KAAI,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iCAClE;gCACD,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,OAAO,EAAE;oCAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,CAAC,qBAAS,CAAC,iBAAiB,CAAC,EAAE;wCAC1E,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;qCACzC;oCACD,KAAI,CAAC,cAAc,CAAC,aAAK,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;iCAClE;4BACH,CAAC,CAAC;yBACH;wBACD,KAAA,IAAI,CAAA;wBAAiB,qBAAM,2BAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;wBAArD,GAAK,aAAa,GAAG,SAAgC,CAAC;wBACtD,KAAA,IAAI,CAAA;wBAAqB,qBAAM,mCAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,EAAA;;wBAA7D,GAAK,iBAAiB,GAAG,SAAoC,CAAC;wBAC9D,IAAI,SAAS,CAAC,wBAAwB,KAAK,SAAS,EAAE;4BACpD,IAAI,CAAC,yBAAyB,GAAG,SAAS,CAAC,wBAAwB,CAAC;yBACrE;wBACD,IAAI,CAAC,cAAc,CAAC,aAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;wBACvD,sBAAO,KAAK,EAAC;;;;KACd;IAED;;OAEG;IACa,uCAAsB,GAAtC;;;;;;wBACQ,SAAS,GAAG,yBAAW,CAAC,GAAG,CAAY,OAAO,CAAC,CAAC;wBAChD,SAAS,GAAG,EAAE,CAAC;8BAC+B,EAAnB,KAAA,SAAS,CAAC,SAAS;;;6BAAnB,CAAA,cAAmB,CAAA;wBAAzC,kBAAkB;wBAC3B,IAAI,kBAAkB,CAAC,IAAI,EAAE;4BAC3B,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;4BACnD,wBAAS;yBACV;wBACD,KAAA,CAAA,KAAA,SAAS,CAAA,CAAC,IAAI,CAAA;wBACZ,qBAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAChC,kBAAkB,CAAC,OAAO,EAC1B,kBAAkB,CAAC,IAAI,EACvB,kBAAkB,CAAC,UAAU,CAC9B,EAAA;;wBALH,cACE,SAIC,EACF,CAAC;;;wBAX6B,IAAmB,CAAA;;4BAapD,sBAAO,SAAS,EAAC;;;;KAClB;IAED;;OAEG;IACK,uCAAsB,GAA9B,UAA+B,WAAiB,EAAE,QAA4B;;QAC5E,iGAAiG;QACjG,IAAM,YAAY,GAAG,IAAI,iCAAe,CACtC,mBAAmB,EACnB,CAAC,EAAE,kEAAkE;QACrE,CAAC,EACD,CAAC,EAAE,qDAAqD;QACxD,qBAAO,CAAC,IAAI,EAAE,EACd,IAAI,CAAC,KAAK,CACX,CAAC;QACF,6GAA6G;QAC7G,wFAAwF;QACxF,YAAY,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAEvC,sEAAsE;QACtE,6CAA6C;QAC7C,2IAA2I;QAC3I,IAAM,MAAM,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;QACnE,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC;QAE9C,6EAA6E;QAC7E,8EAA8E;QAC9E,YAAY,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAC1C,YAAY,CAAC,KAAK,GAAG,OAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,mCAAI,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QAChE,YAAY,CAAC,IAAI,GAAG,OAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,mCAAI,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;QAE7D,mCAAmC;QACnC,sFAAsF;QACtF,YAAY,CAAC,YAAY,GAAG,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,YAAY,KAAI,CAAC,CAAC;QACxD,YAAY,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC;QAEzC,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACW,6CAA4B,GAA1C,UACE,YAA6B,EAC7B,YAA6B,EAC7B,QAA4B;;;;;;wBAE5B,SAAS;wBACT,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;wBACtC,YAAY,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC;wBACtC,YAAY,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;wBAC9D,YAAY,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAC;wBAE9D,sBAAsB;wBACtB,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,MAAK,KAAK,EAAE;4BAC5C,YAAY,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;yBAC3D;wBACD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,wBAAwB,MAAK,KAAK,EAAE;4BAChD,YAAY,CAAC,kBAAkB,GAAG,YAAY,CAAC,kBAAkB,CAAC;yBACnE;wBACD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,oBAAoB,MAAK,KAAK,EAAE;4BAC5C,YAAY,CAAC,cAAc,GAAG,YAAY,CAAC,cAAc,CAAC;yBAC3D;wBAIK,iBAAiB,GAAwB;4BAC7C,KAAK,EAAE,YAAY,CAAC,KAAK;4BACzB,IAAI,EAAE,YAAY,CAAC,IAAI;4BACvB,MAAM,EAAE,YAAY,CAAC,MAAM;4BAC3B,MAAM,EAAE,YAAY,CAAC,MAAM;yBAC5B,CAAC;wBACF,qBAAM,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,YAAY,EAAE,iBAAiB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,SAAS,CAAC,EAAA;;wBAApG,SAAoG,CAAC;;;;;KACtG;IAliBM,cAAO,GAAG,wBAAO,CAAC;IAmiB3B,aAAC;CAAA,AAljBD,CAA4B,mCAAgB,GAkjB3C;AAljBY,wBAAM"}
|
|
1
|
+
{"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../../../src/api/classes/viewer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PBRMaterial } from '@babylonjs/core/Materials/PBR/pbrMaterial';
|
|
2
2
|
import { IExportOptions } from '@babylonjs/serializers';
|
|
3
3
|
export declare class GltfExportManager {
|
|
4
|
-
protected
|
|
4
|
+
protected viewer: Viewer;
|
|
5
5
|
/**
|
|
6
6
|
* Constructor.
|
|
7
7
|
*/
|
|
8
|
-
protected constructor(
|
|
8
|
+
protected constructor(viewer: Viewer);
|
|
9
9
|
/**
|
|
10
10
|
* Creates an {@link GltfExportManager}.
|
|
11
11
|
*/
|
|
12
|
-
static create(
|
|
12
|
+
static create(viewer: Viewer): Promise<GltfExportManager>;
|
|
13
13
|
/**
|
|
14
|
-
* Exports selected nodes to a
|
|
14
|
+
* Exports selected nodes to a file.
|
|
15
|
+
* @param filename optional name of the exported .GLB file.
|
|
15
16
|
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
16
17
|
*/
|
|
17
|
-
exportGlb(exportOptions?: IExportOptions): Promise<
|
|
18
|
+
exportGlb(filename?: string, exportOptions?: IExportOptions): Promise<File | undefined>;
|
|
18
19
|
/**
|
|
19
20
|
* Exports selected nodes to GLTF. This may result in more than one file, since textures are exported separately.
|
|
20
21
|
* @param filename name of the main (text-based) .GLTF file referring to separate texture files.
|
|
@@ -32,4 +33,34 @@ export declare class GltfExportManager {
|
|
|
32
33
|
* @protected
|
|
33
34
|
*/
|
|
34
35
|
protected gltfExportOptions(mergeWithOptions?: IExportOptions): IExportOptions;
|
|
36
|
+
/**
|
|
37
|
+
* Stuff to be done before exporting to GLTF
|
|
38
|
+
* @protected
|
|
39
|
+
*/
|
|
40
|
+
protected exportPreProcess(): void;
|
|
41
|
+
/**
|
|
42
|
+
* Stuff to be done after the GLTF export
|
|
43
|
+
* @protected
|
|
44
|
+
*/
|
|
45
|
+
protected exportPostProcess(): void;
|
|
46
|
+
/**
|
|
47
|
+
* Materials with refraction set are not exported properly.
|
|
48
|
+
* Exchange all such (relevant) materials with a more export-friendly version
|
|
49
|
+
* @param suffix String to be added to the replacement material's name
|
|
50
|
+
* @protected
|
|
51
|
+
*/
|
|
52
|
+
protected exchangeRefractionMaterials(suffix: string): void;
|
|
53
|
+
/**
|
|
54
|
+
* Restore original materials with set refraction.
|
|
55
|
+
* @param suffix String added to the replacement material's name
|
|
56
|
+
* @protected
|
|
57
|
+
*/
|
|
58
|
+
protected restoreRefractionMaterials(suffix: string): void;
|
|
59
|
+
/**
|
|
60
|
+
* Create an export-friendly replacement material for a material using refraction.
|
|
61
|
+
* @param mat Material to be replaced
|
|
62
|
+
* @param suffix String to be added to the replacement material's name
|
|
63
|
+
* @protected
|
|
64
|
+
*/
|
|
65
|
+
protected createRefractionMaterialReplacement(mat: PBRMaterial, suffix: string): PBRMaterial;
|
|
35
66
|
}
|
|
@@ -2,39 +2,59 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GltfExportManager = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
+
var pbrMaterial_1 = require("@babylonjs/core/Materials/PBR/pbrMaterial");
|
|
6
|
+
var math_color_1 = require("@babylonjs/core/Maths/math.color");
|
|
7
|
+
var abstractMesh_1 = require("@babylonjs/core/Meshes/abstractMesh");
|
|
5
8
|
var serializers_1 = require("@babylonjs/serializers");
|
|
6
9
|
var lodash_es_1 = require("lodash-es");
|
|
7
10
|
var GltfExportManager = /** @class */ (function () {
|
|
8
11
|
/**
|
|
9
12
|
* Constructor.
|
|
10
13
|
*/
|
|
11
|
-
function GltfExportManager(
|
|
12
|
-
this.
|
|
14
|
+
function GltfExportManager(viewer) {
|
|
15
|
+
this.viewer = viewer;
|
|
13
16
|
}
|
|
14
17
|
/**
|
|
15
18
|
* Creates an {@link GltfExportManager}.
|
|
16
19
|
*/
|
|
17
|
-
GltfExportManager.create = function (
|
|
20
|
+
GltfExportManager.create = function (viewer) {
|
|
18
21
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
19
22
|
return tslib_1.__generator(this, function (_a) {
|
|
20
|
-
return [2 /*return*/, new GltfExportManager(
|
|
23
|
+
return [2 /*return*/, new GltfExportManager(viewer)];
|
|
21
24
|
});
|
|
22
25
|
});
|
|
23
26
|
};
|
|
24
27
|
/**
|
|
25
|
-
* Exports selected nodes to a
|
|
28
|
+
* Exports selected nodes to a file.
|
|
29
|
+
* @param filename optional name of the exported .GLB file.
|
|
26
30
|
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
27
31
|
*/
|
|
28
|
-
GltfExportManager.prototype.exportGlb = function (exportOptions) {
|
|
32
|
+
GltfExportManager.prototype.exportGlb = function (filename, exportOptions) {
|
|
33
|
+
if (filename === void 0) { filename = 'glb-export.glb'; }
|
|
29
34
|
if (exportOptions === void 0) { exportOptions = {}; }
|
|
30
35
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
31
|
-
var glbData;
|
|
36
|
+
var glbData, resBlob;
|
|
32
37
|
return tslib_1.__generator(this, function (_a) {
|
|
33
38
|
switch (_a.label) {
|
|
34
|
-
case 0:
|
|
39
|
+
case 0:
|
|
40
|
+
this.exportPreProcess();
|
|
41
|
+
return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.viewer.scene, 'dummy', this.gltfExportOptions(exportOptions))];
|
|
35
42
|
case 1:
|
|
36
43
|
glbData = _a.sent();
|
|
37
|
-
|
|
44
|
+
this.exportPostProcess();
|
|
45
|
+
resBlob = glbData.glTFFiles['dummy.glb'];
|
|
46
|
+
// check if result is valid, according to the typings this could also be a string
|
|
47
|
+
if (resBlob instanceof Blob) {
|
|
48
|
+
if (!filename.endsWith('.glb')) {
|
|
49
|
+
filename += '.glb';
|
|
50
|
+
}
|
|
51
|
+
return [2 /*return*/, new File([resBlob], filename)];
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
// result was not a valid blob
|
|
55
|
+
return [2 /*return*/, undefined];
|
|
56
|
+
}
|
|
57
|
+
return [2 /*return*/];
|
|
38
58
|
}
|
|
39
59
|
});
|
|
40
60
|
});
|
|
@@ -49,11 +69,14 @@ var GltfExportManager = /** @class */ (function () {
|
|
|
49
69
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
50
70
|
return tslib_1.__generator(this, function (_a) {
|
|
51
71
|
switch (_a.label) {
|
|
52
|
-
case 0:
|
|
53
|
-
|
|
54
|
-
|
|
72
|
+
case 0:
|
|
73
|
+
this.exportPreProcess();
|
|
74
|
+
return [4 /*yield*/, serializers_1.GLTF2Export.GLTFAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions)).then(function (glb) {
|
|
75
|
+
glb.downloadFiles();
|
|
76
|
+
})];
|
|
55
77
|
case 1:
|
|
56
78
|
_a.sent();
|
|
79
|
+
this.exportPostProcess();
|
|
57
80
|
return [2 /*return*/];
|
|
58
81
|
}
|
|
59
82
|
});
|
|
@@ -69,11 +92,14 @@ var GltfExportManager = /** @class */ (function () {
|
|
|
69
92
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
70
93
|
return tslib_1.__generator(this, function (_a) {
|
|
71
94
|
switch (_a.label) {
|
|
72
|
-
case 0:
|
|
73
|
-
|
|
74
|
-
|
|
95
|
+
case 0:
|
|
96
|
+
this.exportPreProcess();
|
|
97
|
+
return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions)).then(function (glb) {
|
|
98
|
+
glb.downloadFiles();
|
|
99
|
+
})];
|
|
75
100
|
case 1:
|
|
76
101
|
_a.sent();
|
|
102
|
+
this.exportPostProcess();
|
|
77
103
|
return [2 /*return*/];
|
|
78
104
|
}
|
|
79
105
|
});
|
|
@@ -102,6 +128,94 @@ var GltfExportManager = /** @class */ (function () {
|
|
|
102
128
|
};
|
|
103
129
|
return lodash_es_1.merge({}, defaultOptions, mergeWithOptions);
|
|
104
130
|
};
|
|
131
|
+
/**
|
|
132
|
+
* Stuff to be done before exporting to GLTF
|
|
133
|
+
* @protected
|
|
134
|
+
*/
|
|
135
|
+
GltfExportManager.prototype.exportPreProcess = function () {
|
|
136
|
+
this.viewer.pauseRendering();
|
|
137
|
+
this.exchangeRefractionMaterials('__cloned');
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Stuff to be done after the GLTF export
|
|
141
|
+
* @protected
|
|
142
|
+
*/
|
|
143
|
+
GltfExportManager.prototype.exportPostProcess = function () {
|
|
144
|
+
this.restoreRefractionMaterials('__cloned');
|
|
145
|
+
this.viewer.resumeRendering();
|
|
146
|
+
};
|
|
147
|
+
/**
|
|
148
|
+
* Materials with refraction set are not exported properly.
|
|
149
|
+
* Exchange all such (relevant) materials with a more export-friendly version
|
|
150
|
+
* @param suffix String to be added to the replacement material's name
|
|
151
|
+
* @protected
|
|
152
|
+
*/
|
|
153
|
+
GltfExportManager.prototype.exchangeRefractionMaterials = function (suffix) {
|
|
154
|
+
for (var _i = 0, _a = this.viewer.scene.getNodes(); _i < _a.length; _i++) {
|
|
155
|
+
var n = _a[_i];
|
|
156
|
+
if (!(n instanceof abstractMesh_1.AbstractMesh))
|
|
157
|
+
continue;
|
|
158
|
+
if (!(n.material instanceof pbrMaterial_1.PBRMaterial))
|
|
159
|
+
continue;
|
|
160
|
+
if (n.material.subSurface.isRefractionEnabled !== true)
|
|
161
|
+
continue;
|
|
162
|
+
if (n.material.transparencyMode !== pbrMaterial_1.PBRMaterial.PBRMATERIAL_OPAQUE)
|
|
163
|
+
continue;
|
|
164
|
+
// if we're here, we have a node holding a material with set refraction whose transparencyMode is set to PBRMATERIAL_OPAQUE
|
|
165
|
+
n.material = this.createRefractionMaterialReplacement(n.material, suffix);
|
|
166
|
+
}
|
|
167
|
+
};
|
|
168
|
+
/**
|
|
169
|
+
* Restore original materials with set refraction.
|
|
170
|
+
* @param suffix String added to the replacement material's name
|
|
171
|
+
* @protected
|
|
172
|
+
*/
|
|
173
|
+
GltfExportManager.prototype.restoreRefractionMaterials = function (suffix) {
|
|
174
|
+
var _this = this;
|
|
175
|
+
for (var _i = 0, _a = this.viewer.scene.getNodes(); _i < _a.length; _i++) {
|
|
176
|
+
var n = _a[_i];
|
|
177
|
+
if (n instanceof abstractMesh_1.AbstractMesh && n.material instanceof pbrMaterial_1.PBRMaterial) {
|
|
178
|
+
// at this point we have a pbrmaterial that's set on a mesh
|
|
179
|
+
if (n.material.name.endsWith(suffix)) {
|
|
180
|
+
var previousMaterialName = n.material.name.replace(suffix, ''); // strip suffix from name
|
|
181
|
+
n.material = this.viewer.scene.getMaterialByName(previousMaterialName); // set previous material on mesh
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
// dispose of all clones.
|
|
186
|
+
var allClonedMaterials = [];
|
|
187
|
+
for (var _b = 0, _c = this.viewer.scene.materials; _b < _c.length; _b++) {
|
|
188
|
+
var mat = _c[_b];
|
|
189
|
+
if (mat.name.endsWith(suffix))
|
|
190
|
+
allClonedMaterials.push(mat.name);
|
|
191
|
+
}
|
|
192
|
+
allClonedMaterials.forEach(function (mat) {
|
|
193
|
+
var _a;
|
|
194
|
+
(_a = _this.viewer.scene.getMaterialByName(mat)) === null || _a === void 0 ? void 0 : _a.dispose(false, true);
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
/**
|
|
198
|
+
* Create an export-friendly replacement material for a material using refraction.
|
|
199
|
+
* @param mat Material to be replaced
|
|
200
|
+
* @param suffix String to be added to the replacement material's name
|
|
201
|
+
* @protected
|
|
202
|
+
*/
|
|
203
|
+
GltfExportManager.prototype.createRefractionMaterialReplacement = function (mat, suffix) {
|
|
204
|
+
var newMatName = mat.name + suffix;
|
|
205
|
+
// if material of that name already exists - return it instead of cloning
|
|
206
|
+
if (this.viewer.scene.getMaterialByName(newMatName))
|
|
207
|
+
return this.viewer.scene.getMaterialByName(newMatName);
|
|
208
|
+
// change material according to https://www.notion.so/combeenation/Glas-materials-don-t-look-glasy-after-export-d5fda2c6515e4420a8772744d3e6b460
|
|
209
|
+
var clonedMaterial = mat.clone(mat.name + suffix);
|
|
210
|
+
clonedMaterial.refractionTexture = null;
|
|
211
|
+
clonedMaterial.metallicReflectanceTexture = null; // is this the correct one for metallic roughness?
|
|
212
|
+
clonedMaterial.alpha = 0.7;
|
|
213
|
+
clonedMaterial.albedoColor = new math_color_1.Color3(0.3, 0.3, 0.3);
|
|
214
|
+
clonedMaterial.transparencyMode = pbrMaterial_1.PBRMaterial.PBRMATERIAL_ALPHABLEND;
|
|
215
|
+
clonedMaterial.metallic = 0.65;
|
|
216
|
+
clonedMaterial.roughness = 0.15;
|
|
217
|
+
return clonedMaterial;
|
|
218
|
+
};
|
|
105
219
|
return GltfExportManager;
|
|
106
220
|
}());
|
|
107
221
|
exports.GltfExportManager = GltfExportManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -51,6 +51,8 @@ export class Viewer extends EventBroadcaster {
|
|
|
51
51
|
// in the future material cloning should be the edge case
|
|
52
52
|
protected _cloneMaterialsOnMutation: boolean = true;
|
|
53
53
|
|
|
54
|
+
protected _isRenderLoopPaused: boolean = false;
|
|
55
|
+
|
|
54
56
|
static version = version;
|
|
55
57
|
|
|
56
58
|
/**
|
|
@@ -177,7 +179,7 @@ export class Viewer extends EventBroadcaster {
|
|
|
177
179
|
await this.createVariantInstances();
|
|
178
180
|
}
|
|
179
181
|
// create gltf export manager
|
|
180
|
-
this._gltfExportManager = await GltfExportManager.create(this
|
|
182
|
+
this._gltfExportManager = await GltfExportManager.create(this);
|
|
181
183
|
// resize handler
|
|
182
184
|
window.addEventListener('resize', debounce(this.resize.bind(this), 100));
|
|
183
185
|
// wait until scene is completely ready
|
|
@@ -186,7 +188,7 @@ export class Viewer extends EventBroadcaster {
|
|
|
186
188
|
this.broadcastEvent(Event.BOOTSTRAP_END, this);
|
|
187
189
|
// render loop
|
|
188
190
|
this.engine.runRenderLoop(() => {
|
|
189
|
-
this.scene.render();
|
|
191
|
+
if (!this._isRenderLoopPaused) this.scene.render();
|
|
190
192
|
});
|
|
191
193
|
return this;
|
|
192
194
|
}
|
|
@@ -463,6 +465,20 @@ export class Viewer extends EventBroadcaster {
|
|
|
463
465
|
zChar.position = new Vector3(0, 0.05 * dimension, 0.9 * dimension);
|
|
464
466
|
}
|
|
465
467
|
|
|
468
|
+
/**
|
|
469
|
+
* Pause render loop.
|
|
470
|
+
*/
|
|
471
|
+
public pauseRendering() {
|
|
472
|
+
this._isRenderLoopPaused = true;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Resume render loop when paused.
|
|
477
|
+
*/
|
|
478
|
+
public resumeRendering() {
|
|
479
|
+
this._isRenderLoopPaused = false;
|
|
480
|
+
}
|
|
481
|
+
|
|
466
482
|
/**
|
|
467
483
|
* @emits {@link Event.SCENE_PROCESSING_START}
|
|
468
484
|
* @emits {@link Event.SCENE_PROCESSING_END}
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import { PBRMaterial } from '@babylonjs/core/Materials/PBR/pbrMaterial';
|
|
2
|
+
import { Color3 } from '@babylonjs/core/Maths/math.color';
|
|
3
|
+
import { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh';
|
|
1
4
|
import { Scene } from '@babylonjs/core/scene';
|
|
2
5
|
import { GLTF2Export, IExportOptions } from '@babylonjs/serializers';
|
|
3
6
|
import { merge } from 'lodash-es';
|
|
@@ -6,22 +9,36 @@ export class GltfExportManager {
|
|
|
6
9
|
/**
|
|
7
10
|
* Constructor.
|
|
8
11
|
*/
|
|
9
|
-
protected constructor(protected
|
|
12
|
+
protected constructor(protected viewer: Viewer) {}
|
|
10
13
|
|
|
11
14
|
/**
|
|
12
15
|
* Creates an {@link GltfExportManager}.
|
|
13
16
|
*/
|
|
14
|
-
public static async create(
|
|
15
|
-
return new GltfExportManager(
|
|
17
|
+
public static async create(viewer: Viewer): Promise<GltfExportManager> {
|
|
18
|
+
return new GltfExportManager(viewer);
|
|
16
19
|
}
|
|
17
20
|
|
|
18
21
|
/**
|
|
19
|
-
* Exports selected nodes to a
|
|
22
|
+
* Exports selected nodes to a file.
|
|
23
|
+
* @param filename optional name of the exported .GLB file.
|
|
20
24
|
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
21
25
|
*/
|
|
22
|
-
public async exportGlb(exportOptions: IExportOptions = {}): Promise<
|
|
23
|
-
|
|
24
|
-
|
|
26
|
+
public async exportGlb(filename = 'glb-export.glb', exportOptions: IExportOptions = {}): Promise<File | undefined> {
|
|
27
|
+
this.exportPreProcess();
|
|
28
|
+
const glbData = await GLTF2Export.GLBAsync(this.viewer.scene, 'dummy', this.gltfExportOptions(exportOptions));
|
|
29
|
+
this.exportPostProcess();
|
|
30
|
+
const resBlob = glbData.glTFFiles['dummy.glb']; // should be only one file for glb
|
|
31
|
+
|
|
32
|
+
// check if result is valid, according to the typings this could also be a string
|
|
33
|
+
if (resBlob instanceof Blob) {
|
|
34
|
+
if (!filename.endsWith('.glb')) {
|
|
35
|
+
filename += '.glb';
|
|
36
|
+
}
|
|
37
|
+
return new File([resBlob], filename);
|
|
38
|
+
} else {
|
|
39
|
+
// result was not a valid blob
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
25
42
|
}
|
|
26
43
|
|
|
27
44
|
/**
|
|
@@ -30,9 +47,11 @@ export class GltfExportManager {
|
|
|
30
47
|
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
31
48
|
*/
|
|
32
49
|
public async exportGltfToFile(filename: string, exportOptions: IExportOptions = {}) {
|
|
33
|
-
|
|
50
|
+
this.exportPreProcess();
|
|
51
|
+
await GLTF2Export.GLTFAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions)).then(glb => {
|
|
34
52
|
glb.downloadFiles();
|
|
35
53
|
});
|
|
54
|
+
this.exportPostProcess();
|
|
36
55
|
}
|
|
37
56
|
|
|
38
57
|
/**
|
|
@@ -41,9 +60,11 @@ export class GltfExportManager {
|
|
|
41
60
|
* @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
|
|
42
61
|
*/
|
|
43
62
|
public async exportGlbToFile(filename: string, exportOptions: IExportOptions = {}) {
|
|
44
|
-
|
|
63
|
+
this.exportPreProcess();
|
|
64
|
+
await GLTF2Export.GLBAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions)).then(glb => {
|
|
45
65
|
glb.downloadFiles();
|
|
46
66
|
});
|
|
67
|
+
this.exportPostProcess();
|
|
47
68
|
}
|
|
48
69
|
|
|
49
70
|
/**
|
|
@@ -68,4 +89,89 @@ export class GltfExportManager {
|
|
|
68
89
|
};
|
|
69
90
|
return merge({}, defaultOptions, mergeWithOptions);
|
|
70
91
|
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Stuff to be done before exporting to GLTF
|
|
95
|
+
* @protected
|
|
96
|
+
*/
|
|
97
|
+
protected exportPreProcess() {
|
|
98
|
+
this.viewer.pauseRendering();
|
|
99
|
+
this.exchangeRefractionMaterials('__cloned');
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Stuff to be done after the GLTF export
|
|
104
|
+
* @protected
|
|
105
|
+
*/
|
|
106
|
+
protected exportPostProcess() {
|
|
107
|
+
this.restoreRefractionMaterials('__cloned');
|
|
108
|
+
this.viewer.resumeRendering();
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Materials with refraction set are not exported properly.
|
|
113
|
+
* Exchange all such (relevant) materials with a more export-friendly version
|
|
114
|
+
* @param suffix String to be added to the replacement material's name
|
|
115
|
+
* @protected
|
|
116
|
+
*/
|
|
117
|
+
protected exchangeRefractionMaterials(suffix: string) {
|
|
118
|
+
for (const n of this.viewer.scene.getNodes()) {
|
|
119
|
+
if (!(n instanceof AbstractMesh)) continue;
|
|
120
|
+
if (!(n.material instanceof PBRMaterial)) continue;
|
|
121
|
+
if ((n.material as PBRMaterial).subSurface.isRefractionEnabled !== true) continue;
|
|
122
|
+
if ((n.material as PBRMaterial).transparencyMode !== PBRMaterial.PBRMATERIAL_OPAQUE) continue;
|
|
123
|
+
// if we're here, we have a node holding a material with set refraction whose transparencyMode is set to PBRMATERIAL_OPAQUE
|
|
124
|
+
n.material = this.createRefractionMaterialReplacement(n.material, suffix);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Restore original materials with set refraction.
|
|
130
|
+
* @param suffix String added to the replacement material's name
|
|
131
|
+
* @protected
|
|
132
|
+
*/
|
|
133
|
+
protected restoreRefractionMaterials(suffix: string) {
|
|
134
|
+
for (const n of this.viewer.scene.getNodes()) {
|
|
135
|
+
if (n instanceof AbstractMesh && n.material instanceof PBRMaterial) {
|
|
136
|
+
// at this point we have a pbrmaterial that's set on a mesh
|
|
137
|
+
if (n.material.name.endsWith(suffix)) {
|
|
138
|
+
const previousMaterialName = n.material.name.replace(suffix, ''); // strip suffix from name
|
|
139
|
+
n.material = this.viewer.scene.getMaterialByName(previousMaterialName); // set previous material on mesh
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
// dispose of all clones.
|
|
144
|
+
let allClonedMaterials = [];
|
|
145
|
+
for (const mat of this.viewer.scene.materials) {
|
|
146
|
+
if (mat.name.endsWith(suffix)) allClonedMaterials.push(mat.name);
|
|
147
|
+
}
|
|
148
|
+
allClonedMaterials.forEach(mat => {
|
|
149
|
+
this.viewer.scene.getMaterialByName(mat)?.dispose(false, true);
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Create an export-friendly replacement material for a material using refraction.
|
|
155
|
+
* @param mat Material to be replaced
|
|
156
|
+
* @param suffix String to be added to the replacement material's name
|
|
157
|
+
* @protected
|
|
158
|
+
*/
|
|
159
|
+
protected createRefractionMaterialReplacement(mat: PBRMaterial, suffix: string): PBRMaterial {
|
|
160
|
+
const newMatName = mat.name + suffix;
|
|
161
|
+
// if material of that name already exists - return it instead of cloning
|
|
162
|
+
if (this.viewer.scene.getMaterialByName(newMatName))
|
|
163
|
+
return this.viewer.scene.getMaterialByName(newMatName) as PBRMaterial;
|
|
164
|
+
|
|
165
|
+
// change material according to https://www.notion.so/combeenation/Glas-materials-don-t-look-glasy-after-export-d5fda2c6515e4420a8772744d3e6b460
|
|
166
|
+
let clonedMaterial = mat.clone(mat.name + suffix);
|
|
167
|
+
clonedMaterial.refractionTexture = null;
|
|
168
|
+
clonedMaterial.metallicReflectanceTexture = null; // is this the correct one for metallic roughness?
|
|
169
|
+
clonedMaterial.alpha = 0.7;
|
|
170
|
+
clonedMaterial.albedoColor = new Color3(0.3, 0.3, 0.3);
|
|
171
|
+
clonedMaterial.transparencyMode = PBRMaterial.PBRMATERIAL_ALPHABLEND;
|
|
172
|
+
clonedMaterial.metallic = 0.65;
|
|
173
|
+
clonedMaterial.roughness = 0.15;
|
|
174
|
+
|
|
175
|
+
return clonedMaterial;
|
|
176
|
+
}
|
|
71
177
|
}
|