@combeenation/3d-viewer 5.0.0-ar1 → 5.0.0-beta5

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.
@@ -55,6 +55,15 @@ export declare class Element extends VariantParameterizable {
55
55
  * Merges the {@link Variant}'s parameters and those from the {@link Element}.
56
56
  */
57
57
  get inheritedParameters(): ParameterBag;
58
+ /**
59
+ * The actual {@link Mesh}es that make up this {@link Element}.
60
+ * Handy for e.g. creating a bounding box around an entire element.
61
+ */
62
+ get meshesFlat(): Mesh[];
63
+ /**
64
+ * The meshes of this {@link Element}.
65
+ */
66
+ get meshes(): Mesh[];
58
67
  /**
59
68
  * @protected
60
69
  */
@@ -137,6 +137,31 @@ var Element = /** @class */ (function (_super) {
137
137
  enumerable: false,
138
138
  configurable: true
139
139
  });
140
+ Object.defineProperty(Element.prototype, "meshesFlat", {
141
+ /**
142
+ * The actual {@link Mesh}es that make up this {@link Element}.
143
+ * Handy for e.g. creating a bounding box around an entire element.
144
+ */
145
+ get: function () {
146
+ var flatMeshes = this.nodes.reduce(function (accFlatMeshes, curNode) {
147
+ var currMeshes = curNode.getChildMeshes(false, function (n) { return n instanceof mesh_1.Mesh; });
148
+ return tslib_1.__spreadArrays(accFlatMeshes, currMeshes);
149
+ }, []);
150
+ return flatMeshes;
151
+ },
152
+ enumerable: false,
153
+ configurable: true
154
+ });
155
+ Object.defineProperty(Element.prototype, "meshes", {
156
+ /**
157
+ * The meshes of this {@link Element}.
158
+ */
159
+ get: function () {
160
+ return this.nodes.filter(function (node) { return node instanceof mesh_1.Mesh; });
161
+ },
162
+ enumerable: false,
163
+ configurable: true
164
+ });
140
165
  Object.defineProperty(Element.prototype, "highlightLayer", {
141
166
  get: function () {
142
167
  return this._highlightLayer;
@@ -311,13 +336,6 @@ var Element = /** @class */ (function (_super) {
311
336
  texture.update(false);
312
337
  // finally apply the texture on the desired node material
313
338
  babylonHelper_1.setMaterialTexture(node, texture, false);
314
- // WORK IN PROGRESS
315
- var theMaterial = node.material;
316
- var theMaterialTextures = theMaterial.getActiveTextures();
317
- var texturesOnScene = node.getScene().textures;
318
- // node.getScene().textures.push(texture);
319
- // debugger;
320
- // WORK IN PROGRESS
321
339
  return this;
322
340
  };
323
341
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../../src/api/classes/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../../src/api/classes/element.ts"],"names":[],"mappings":"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"}
@@ -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
@@ -125,7 +126,7 @@ export declare class Viewer extends EventBroadcaster {
125
126
  /**
126
127
  * Calculates the bounding box from all visible meshes on the scene.
127
128
  */
128
- calculateBoundingBox(): Promise<Mesh>;
129
+ calculateBoundingBox(excludeGeometry?: ExcludedGeometry): Promise<Mesh>;
129
130
  /**
130
131
  * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
131
132
  */
@@ -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}
@@ -13,6 +13,7 @@ var math_vector_1 = require("@babylonjs/core/Maths/math.vector");
13
13
  var mesh_1 = require("@babylonjs/core/Meshes/mesh");
14
14
  var screenshotTools_1 = require("@babylonjs/core/Misc/screenshotTools");
15
15
  var webXRSessionManager_1 = require("@babylonjs/core/XR/webXRSessionManager");
16
+ var structureHelper_1 = require("../util/structureHelper");
16
17
  var lodash_es_1 = require("lodash-es");
17
18
  var buildinfo_json_1 = require("../../buildinfo.json");
18
19
  var sceneSetup_1 = require("../internal/sceneSetup");
@@ -52,6 +53,7 @@ var Viewer = /** @class */ (function (_super) {
52
53
  // default value is `true` ATM for compatibility reasons
53
54
  // in the future material cloning should be the edge case
54
55
  _this._cloneMaterialsOnMutation = true;
56
+ _this._isRenderLoopPaused = false;
55
57
  return _this;
56
58
  }
57
59
  Object.defineProperty(Viewer.prototype, "scene", {
@@ -215,7 +217,7 @@ var Viewer = /** @class */ (function (_super) {
215
217
  case 12:
216
218
  // create gltf export manager
217
219
  _c = this;
218
- return [4 /*yield*/, gltfExportManager_1.GltfExportManager.create(this.scene)];
220
+ return [4 /*yield*/, gltfExportManager_1.GltfExportManager.create(this)];
219
221
  case 13:
220
222
  // create gltf export manager
221
223
  _c._gltfExportManager = _d.sent();
@@ -230,7 +232,8 @@ var Viewer = /** @class */ (function (_super) {
230
232
  this.broadcastEvent(event_1.Event.BOOTSTRAP_END, this);
231
233
  // render loop
232
234
  this.engine.runRenderLoop(function () {
233
- _this.scene.render();
235
+ if (!_this._isRenderLoopPaused)
236
+ _this.scene.render();
234
237
  });
235
238
  return [2 /*return*/, this];
236
239
  }
@@ -383,7 +386,7 @@ var Viewer = /** @class */ (function (_super) {
383
386
  /**
384
387
  * Calculates the bounding box from all visible meshes on the scene.
385
388
  */
386
- Viewer.prototype.calculateBoundingBox = function () {
389
+ Viewer.prototype.calculateBoundingBox = function (excludeGeometry) {
387
390
  return tslib_1.__awaiter(this, void 0, void 0, function () {
388
391
  var bbName, _a, max, min, boundingBox;
389
392
  return tslib_1.__generator(this, function (_b) {
@@ -399,7 +402,9 @@ var Viewer = /** @class */ (function (_super) {
399
402
  var isNotBBoxMesh = bbName !== mesh.id;
400
403
  // ignore meshes with invalid bounding infos
401
404
  var hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
402
- return isEnabled && isNotBBoxMesh && hasValidBBoxInfo;
405
+ // ignore excluded meshes
406
+ var isExcluded = excludeGeometry ? structureHelper_1.isMeshIncludedInExclusionList(mesh, excludeGeometry) : false;
407
+ return isEnabled && isNotBBoxMesh && hasValidBBoxInfo && !isExcluded;
403
408
  })
404
409
  .reduce(function (accBBoxMinMax, curMesh, idx) {
405
410
  var bBox = curMesh.getBoundingInfo().boundingBox;
@@ -434,7 +439,7 @@ var Viewer = /** @class */ (function (_super) {
434
439
  cameraClsName = activeCamera.getClassName();
435
440
  throw new Error("Camera of type \"" + cameraClsName + "\" is not implemented yet to use autofocus feature.");
436
441
  }
437
- return [4 /*yield*/, this.calculateBoundingBox()];
442
+ return [4 /*yield*/, this.calculateBoundingBox(settings === null || settings === void 0 ? void 0 : settings.exclude)];
438
443
  case 1:
439
444
  boundingBox = _a.sent();
440
445
  helperCamera = this.getFocusedHelperCamera(boundingBox, settings);
@@ -500,7 +505,7 @@ var Viewer = /** @class */ (function (_super) {
500
505
  new math_vector_1.Vector3(dimension * 0.95, 0.05 * dimension, 0),
501
506
  new math_vector_1.Vector3(dimension, 0, 0),
502
507
  new math_vector_1.Vector3(dimension * 0.95, -0.05 * dimension, 0),
503
- ], scene);
508
+ ], scene, false);
504
509
  axisX.color = new math_color_1.Color3(1, 0, 0);
505
510
  var xChar = makeTextPlane('X', 'red', dimension / 10);
506
511
  xChar.position = new math_vector_1.Vector3(0.9 * dimension, -0.05 * dimension, 0);
@@ -510,7 +515,7 @@ var Viewer = /** @class */ (function (_super) {
510
515
  new math_vector_1.Vector3(-0.05 * dimension, dimension * 0.95, 0),
511
516
  new math_vector_1.Vector3(0, dimension, 0),
512
517
  new math_vector_1.Vector3(0.05 * dimension, dimension * 0.95, 0),
513
- ], scene);
518
+ ], scene, false);
514
519
  axisY.color = new math_color_1.Color3(0, 1, 0);
515
520
  var yChar = makeTextPlane('Y', 'green', dimension / 10);
516
521
  yChar.position = new math_vector_1.Vector3(0, 0.9 * dimension, -0.05 * dimension);
@@ -520,11 +525,23 @@ var Viewer = /** @class */ (function (_super) {
520
525
  new math_vector_1.Vector3(0, -0.05 * dimension, dimension * 0.95),
521
526
  new math_vector_1.Vector3(0, 0, dimension),
522
527
  new math_vector_1.Vector3(0, 0.05 * dimension, dimension * 0.95),
523
- ], scene);
528
+ ], scene, false);
524
529
  axisZ.color = new math_color_1.Color3(0, 0, 1);
525
530
  var zChar = makeTextPlane('Z', 'blue', dimension / 10);
526
531
  zChar.position = new math_vector_1.Vector3(0, 0.05 * dimension, 0.9 * dimension);
527
532
  };
533
+ /**
534
+ * Pause render loop.
535
+ */
536
+ Viewer.prototype.pauseRendering = function () {
537
+ this._isRenderLoopPaused = true;
538
+ };
539
+ /**
540
+ * Resume render loop when paused.
541
+ */
542
+ Viewer.prototype.resumeRendering = function () {
543
+ this._isRenderLoopPaused = false;
544
+ };
528
545
  /**
529
546
  * @emits {@link Event.SCENE_PROCESSING_START}
530
547
  * @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,35 +1,65 @@
1
- import { Scene } from '@babylonjs/core/scene';
1
+ import { PBRMaterial } from '@babylonjs/core/Materials/PBR/pbrMaterial';
2
2
  import { IExportOptions } from '@babylonjs/serializers';
3
3
  export declare class GltfExportManager {
4
- protected scene: Scene;
4
+ protected viewer: Viewer;
5
5
  /**
6
6
  * Constructor.
7
7
  */
8
- protected constructor(scene: Scene);
8
+ protected constructor(viewer: Viewer);
9
9
  /**
10
10
  * Creates an {@link GltfExportManager}.
11
11
  */
12
- static create(scene: Scene): Promise<GltfExportManager>;
12
+ static create(viewer: Viewer): Promise<GltfExportManager>;
13
13
  /**
14
- * Exports selected nodes to a {@link GlbExportResult} blob.
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}.
17
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export.
16
18
  */
17
- exportGlb(exportOptions?: IExportOptions): Promise<GlbExportResult>;
19
+ exportGlb(filename?: string, exportOptions?: IExportOptions, excluded?: ExcludedGeometry): Promise<File | undefined>;
18
20
  /**
19
21
  * Exports selected nodes to GLTF. This may result in more than one file, since textures are exported separately.
20
22
  * @param filename name of the main (text-based) .GLTF file referring to separate texture files.
21
23
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
24
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export.
22
25
  */
23
- exportGltfToFile(filename: string, exportOptions?: IExportOptions): Promise<void>;
26
+ exportGltfToFile(filename: string, exportOptions?: IExportOptions, excluded?: ExcludedGeometry): Promise<void>;
24
27
  /**
25
28
  * Exports selected nodes to GLB. This results in one binary file.
26
29
  * @param filename name of the .GLB file.
27
30
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
31
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export
28
32
  */
29
- exportGlbToFile(filename: string, exportOptions?: IExportOptions): Promise<void>;
33
+ exportGlbToFile(filename: string, exportOptions?: IExportOptions, excluded?: ExcludedGeometry): Promise<void>;
30
34
  /**
31
35
  * Gets predefined {@link IExportOptions } merged with given ones.
32
- * @protected
33
36
  */
34
- protected gltfExportOptions(mergeWithOptions?: IExportOptions): IExportOptions;
37
+ protected gltfExportOptions(mergeWithOptions?: IExportOptions, excluded?: ExcludedGeometry): IExportOptions;
38
+ /**
39
+ * Stuff to be done before exporting to GLTF
40
+ */
41
+ protected exportPreProcess(): void;
42
+ /**
43
+ * Stuff to be done after the GLTF export
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
+ */
50
+ protected exchangeRefractionMaterials(): void;
51
+ /**
52
+ * Restore original materials with set refraction.
53
+ */
54
+ protected restoreRefractionMaterials(): void;
55
+ /**
56
+ * Create an export-friendly replacement material for a material using refraction.
57
+ * @param mat Material to be replaced
58
+ */
59
+ protected createRefractionMaterialReplacement(mat: PBRMaterial): PBRMaterial;
60
+ /**
61
+ * Inspect if a material was temporarily cloned for GLB export
62
+ * @param mat Material to be inspected
63
+ */
64
+ protected isMaterialClonedForExport(mat: PBRMaterial): boolean;
35
65
  }
@@ -2,39 +2,62 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GltfExportManager = void 0;
4
4
  var tslib_1 = require("tslib");
5
+ var core_1 = require("@babylonjs/core");
6
+ var pbrMaterial_1 = require("@babylonjs/core/Materials/PBR/pbrMaterial");
7
+ var math_color_1 = require("@babylonjs/core/Maths/math.color");
8
+ var abstractMesh_1 = require("@babylonjs/core/Meshes/abstractMesh");
5
9
  var serializers_1 = require("@babylonjs/serializers");
10
+ var structureHelper_1 = require("../util/structureHelper");
6
11
  var lodash_es_1 = require("lodash-es");
7
12
  var GltfExportManager = /** @class */ (function () {
8
13
  /**
9
14
  * Constructor.
10
15
  */
11
- function GltfExportManager(scene) {
12
- this.scene = scene;
16
+ function GltfExportManager(viewer) {
17
+ this.viewer = viewer;
13
18
  }
14
19
  /**
15
20
  * Creates an {@link GltfExportManager}.
16
21
  */
17
- GltfExportManager.create = function (scene) {
22
+ GltfExportManager.create = function (viewer) {
18
23
  return tslib_1.__awaiter(this, void 0, void 0, function () {
19
24
  return tslib_1.__generator(this, function (_a) {
20
- return [2 /*return*/, new GltfExportManager(scene)];
25
+ return [2 /*return*/, new GltfExportManager(viewer)];
21
26
  });
22
27
  });
23
28
  };
24
29
  /**
25
- * Exports selected nodes to a {@link GlbExportResult} blob.
30
+ * Exports selected nodes to a file.
31
+ * @param filename optional name of the exported .GLB file.
26
32
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
33
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export.
27
34
  */
28
- GltfExportManager.prototype.exportGlb = function (exportOptions) {
35
+ GltfExportManager.prototype.exportGlb = function (filename, exportOptions, excluded) {
36
+ if (filename === void 0) { filename = 'glb-export.glb'; }
29
37
  if (exportOptions === void 0) { exportOptions = {}; }
30
38
  return tslib_1.__awaiter(this, void 0, void 0, function () {
31
- var glbData;
39
+ var glbData, resBlob;
32
40
  return tslib_1.__generator(this, function (_a) {
33
41
  switch (_a.label) {
34
- case 0: return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.scene, 'dummy', this.gltfExportOptions(exportOptions))];
42
+ case 0:
43
+ this.exportPreProcess();
44
+ return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.viewer.scene, 'dummy', this.gltfExportOptions(exportOptions, excluded))];
35
45
  case 1:
36
46
  glbData = _a.sent();
37
- return [2 /*return*/, glbData.glTFFiles['dummy.glb']]; // should be only one file for glb
47
+ this.exportPostProcess();
48
+ resBlob = glbData.glTFFiles['dummy.glb'];
49
+ // check if result is valid, according to the typings this could also be a string
50
+ if (resBlob instanceof Blob) {
51
+ if (!filename.endsWith('.glb')) {
52
+ filename += '.glb';
53
+ }
54
+ return [2 /*return*/, new File([resBlob], filename)];
55
+ }
56
+ else {
57
+ // result was not a valid blob
58
+ return [2 /*return*/, undefined];
59
+ }
60
+ return [2 /*return*/];
38
61
  }
39
62
  });
40
63
  });
@@ -43,17 +66,21 @@ var GltfExportManager = /** @class */ (function () {
43
66
  * Exports selected nodes to GLTF. This may result in more than one file, since textures are exported separately.
44
67
  * @param filename name of the main (text-based) .GLTF file referring to separate texture files.
45
68
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
69
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export.
46
70
  */
47
- GltfExportManager.prototype.exportGltfToFile = function (filename, exportOptions) {
71
+ GltfExportManager.prototype.exportGltfToFile = function (filename, exportOptions, excluded) {
48
72
  if (exportOptions === void 0) { exportOptions = {}; }
49
73
  return tslib_1.__awaiter(this, void 0, void 0, function () {
50
74
  return tslib_1.__generator(this, function (_a) {
51
75
  switch (_a.label) {
52
- case 0: return [4 /*yield*/, serializers_1.GLTF2Export.GLTFAsync(this.scene, filename, this.gltfExportOptions(exportOptions)).then(function (glb) {
53
- glb.downloadFiles();
54
- })];
76
+ case 0:
77
+ this.exportPreProcess();
78
+ return [4 /*yield*/, serializers_1.GLTF2Export.GLTFAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions, excluded)).then(function (glb) {
79
+ glb.downloadFiles();
80
+ })];
55
81
  case 1:
56
82
  _a.sent();
83
+ this.exportPostProcess();
57
84
  return [2 /*return*/];
58
85
  }
59
86
  });
@@ -63,17 +90,21 @@ var GltfExportManager = /** @class */ (function () {
63
90
  * Exports selected nodes to GLB. This results in one binary file.
64
91
  * @param filename name of the .GLB file.
65
92
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
93
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export
66
94
  */
67
- GltfExportManager.prototype.exportGlbToFile = function (filename, exportOptions) {
95
+ GltfExportManager.prototype.exportGlbToFile = function (filename, exportOptions, excluded) {
68
96
  if (exportOptions === void 0) { exportOptions = {}; }
69
97
  return tslib_1.__awaiter(this, void 0, void 0, function () {
70
98
  return tslib_1.__generator(this, function (_a) {
71
99
  switch (_a.label) {
72
- case 0: return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.scene, filename, this.gltfExportOptions(exportOptions)).then(function (glb) {
73
- glb.downloadFiles();
74
- })];
100
+ case 0:
101
+ this.exportPreProcess();
102
+ return [4 /*yield*/, serializers_1.GLTF2Export.GLBAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions, excluded)).then(function (glb) {
103
+ glb.downloadFiles();
104
+ })];
75
105
  case 1:
76
106
  _a.sent();
107
+ this.exportPostProcess();
77
108
  return [2 /*return*/];
78
109
  }
79
110
  });
@@ -81,9 +112,8 @@ var GltfExportManager = /** @class */ (function () {
81
112
  };
82
113
  /**
83
114
  * Gets predefined {@link IExportOptions } merged with given ones.
84
- * @protected
85
115
  */
86
- GltfExportManager.prototype.gltfExportOptions = function (mergeWithOptions) {
116
+ GltfExportManager.prototype.gltfExportOptions = function (mergeWithOptions, excluded) {
87
117
  if (mergeWithOptions === void 0) { mergeWithOptions = {}; }
88
118
  var defaultOptions = {
89
119
  // includeCoordinateSystemConversionNodes: true,
@@ -97,11 +127,96 @@ var GltfExportManager = /** @class */ (function () {
97
127
  if (node.name === '__bounding_box__') {
98
128
  return false;
99
129
  }
130
+ if (excluded && node instanceof core_1.Mesh && structureHelper_1.isMeshIncludedInExclusionList(node, excluded)) {
131
+ return false;
132
+ }
100
133
  return true;
101
134
  },
102
135
  };
103
136
  return lodash_es_1.merge({}, defaultOptions, mergeWithOptions);
104
137
  };
138
+ /**
139
+ * Stuff to be done before exporting to GLTF
140
+ */
141
+ GltfExportManager.prototype.exportPreProcess = function () {
142
+ this.viewer.pauseRendering();
143
+ this.exchangeRefractionMaterials();
144
+ };
145
+ /**
146
+ * Stuff to be done after the GLTF export
147
+ */
148
+ GltfExportManager.prototype.exportPostProcess = function () {
149
+ this.restoreRefractionMaterials();
150
+ this.viewer.resumeRendering();
151
+ };
152
+ /**
153
+ * Materials with refraction set are not exported properly.
154
+ * Exchange all such (relevant) materials with a more export-friendly version
155
+ */
156
+ GltfExportManager.prototype.exchangeRefractionMaterials = function () {
157
+ for (var _i = 0, _a = this.viewer.scene.getNodes(); _i < _a.length; _i++) {
158
+ var n = _a[_i];
159
+ if (!(n instanceof abstractMesh_1.AbstractMesh))
160
+ continue;
161
+ if (!(n.material instanceof pbrMaterial_1.PBRMaterial))
162
+ continue;
163
+ if (!n.material.subSurface.isRefractionEnabled)
164
+ continue;
165
+ if (n.material.transparencyMode !== pbrMaterial_1.PBRMaterial.PBRMATERIAL_OPAQUE)
166
+ continue;
167
+ // if we're here, we have a node holding a material with set refraction whose transparencyMode is set to PBRMATERIAL_OPAQUE
168
+ n.material = this.createRefractionMaterialReplacement(n.material);
169
+ }
170
+ };
171
+ /**
172
+ * Restore original materials with set refraction.
173
+ */
174
+ GltfExportManager.prototype.restoreRefractionMaterials = function () {
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))
178
+ continue;
179
+ if (!(n.material instanceof pbrMaterial_1.PBRMaterial))
180
+ continue;
181
+ if (!this.isMaterialClonedForExport(n.material))
182
+ continue;
183
+ // at this point we have a pbrmaterial tagged as cloned in its metadata that's set on a mesh
184
+ // restore and dispose
185
+ var currMaterial = n.material;
186
+ var prevMaterial = this.viewer.scene.getMaterialByUniqueID(n.material.metadata.clonedFrom);
187
+ if (prevMaterial) {
188
+ n.material = prevMaterial; // restore previous material
189
+ currMaterial.dispose(false, true); // dispose of clone
190
+ }
191
+ }
192
+ };
193
+ /**
194
+ * Create an export-friendly replacement material for a material using refraction.
195
+ * @param mat Material to be replaced
196
+ */
197
+ GltfExportManager.prototype.createRefractionMaterialReplacement = function (mat) {
198
+ // if we're dealing with a clone already, return it instead of cloning
199
+ if (this.isMaterialClonedForExport(mat))
200
+ return mat;
201
+ // change material according to https://www.notion.so/combeenation/Glas-materials-don-t-look-glasy-after-export-d5fda2c6515e4420a8772744d3e6b460
202
+ var clonedMaterial = mat.clone(mat.name); // clone material. clone uses same name
203
+ clonedMaterial.metadata = tslib_1.__assign(tslib_1.__assign({}, mat.metadata), { clonedFrom: mat.uniqueId }); // create shallow copy of metadata on clone. see https://forum.babylonjs.com/t/the-metadata-of-the-mesh-cloned-by-the-instantiatemodelstoscene-method-is-a-shallow-copy/21563
204
+ clonedMaterial.refractionTexture = null;
205
+ clonedMaterial.metallicReflectanceTexture = null; // is this the correct one for metallic roughness?
206
+ clonedMaterial.alpha = 0.7;
207
+ clonedMaterial.albedoColor = new math_color_1.Color3(0.3, 0.3, 0.3);
208
+ clonedMaterial.transparencyMode = pbrMaterial_1.PBRMaterial.PBRMATERIAL_ALPHABLEND;
209
+ clonedMaterial.metallic = 0.65;
210
+ clonedMaterial.roughness = 0.15;
211
+ return clonedMaterial;
212
+ };
213
+ /**
214
+ * Inspect if a material was temporarily cloned for GLB export
215
+ * @param mat Material to be inspected
216
+ */
217
+ GltfExportManager.prototype.isMaterialClonedForExport = function (mat) {
218
+ return mat.metadata.clonedFrom;
219
+ };
105
220
  return GltfExportManager;
106
221
  }());
107
222
  exports.GltfExportManager = GltfExportManager;
@@ -1 +1 @@
1
- {"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":";;;;AACA,sDAAqE;AACrE,uCAAkC;AAElC;IACE;;OAEG;IACH,2BAAgC,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;IAAG,CAAC;IAEhD;;OAEG;IACiB,wBAAM,GAA1B,UAA2B,KAAY;;;gBACrC,sBAAO,IAAI,iBAAiB,CAAC,KAAK,CAAC,EAAC;;;KACrC;IAED;;;OAGG;IACU,qCAAS,GAAtB,UAAuB,aAAkC;QAAlC,8BAAA,EAAA,kBAAkC;;;;;4BACvC,qBAAM,yBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,EAAA;;wBAAhG,OAAO,GAAG,SAAsF;wBACtG,sBAAO,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,EAAC,CAAC,kCAAkC;;;;KAC1E;IAED;;;;OAIG;IACU,4CAAgB,GAA7B,UAA8B,QAAgB,EAAE,aAAkC;QAAlC,8BAAA,EAAA,kBAAkC;;;;4BAChF,qBAAM,yBAAW,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4BAC/F,GAAG,CAAC,aAAa,EAAE,CAAC;wBACtB,CAAC,CAAC,EAAA;;wBAFF,SAEE,CAAC;;;;;KACJ;IAED;;;;OAIG;IACU,2CAAe,GAA5B,UAA6B,QAAgB,EAAE,aAAkC;QAAlC,8BAAA,EAAA,kBAAkC;;;;4BAC/E,qBAAM,yBAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAA,GAAG;4BAC9F,GAAG,CAAC,aAAa,EAAE,CAAC;wBACtB,CAAC,CAAC,EAAA;;wBAFF,SAEE,CAAC;;;;;KACJ;IAED;;;OAGG;IACO,6CAAiB,GAA3B,UAA4B,gBAAqC;QAArC,iCAAA,EAAA,qBAAqC;QAC/D,IAAM,cAAc,GAAG;YACrB,gDAAgD;YAChD,gBAAgB,EAAE,UAAU,IAAS;gBACnC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE;oBACrB,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE;oBAC5B,OAAO,KAAK,CAAC;iBACd;gBACD,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;oBACpC,OAAO,KAAK,CAAC;iBACd;gBACD,OAAO,IAAI,CAAC;YACd,CAAC;SACF,CAAC;QACF,OAAO,iBAAK,CAAC,EAAE,EAAE,cAAc,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IACH,wBAAC;AAAD,CAAC,AAlED,IAkEC;AAlEY,8CAAiB"}
1
+ {"version":3,"file":"gltfExportManager.js","sourceRoot":"","sources":["../../../../src/api/manager/gltfExportManager.ts"],"names":[],"mappings":"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"}
@@ -209,6 +209,10 @@ declare type ScreenshotSettings = {
209
209
  /** Default `false` */
210
210
  renderSprites?: boolean;
211
211
  };
212
+ /**
213
+ * Use this to define geometry to be excluded from autofocus, GLB export, etc.
214
+ */
215
+ declare type ExcludedGeometry = (Mesh | VariantInstance | Variant | VariantElement)[];
212
216
  declare type AutofocusSettings = {
213
217
  /**
214
218
  * Can be used to customize the margins shown around the 3d model when calling {@link autofocusActiveCamera}.\
@@ -224,6 +228,8 @@ declare type AutofocusSettings = {
224
228
  beta?: number;
225
229
  /** Optional animation for the focusing camera movement */
226
230
  animation?: string | AnimationDefinition;
231
+ /** Optional list of geometry to be excluded from consideration */
232
+ exclude?: ExcludedGeometry;
227
233
  };
228
234
  declare type LightDefinitions = {
229
235
  [name: string]: LightDefinition | string;
@@ -348,4 +354,3 @@ declare type AnimationDefinitions = {
348
354
  declare type AnimationDefinition = GSAPTweenVars & {
349
355
  shortestWay?: boolean;
350
356
  };
351
- declare type GlbExportResult = string | Blob;
@@ -0,0 +1,9 @@
1
+ import { Mesh } from '@babylonjs/core/Meshes/mesh';
2
+ /**
3
+ * Find out if a mesh is part of a list of excluded geometry
4
+ * @param mesh BJS mesh
5
+ * @param list list of excluded geometry
6
+ * @returns boolean based on whether mesh was found in list
7
+ */
8
+ declare const isMeshIncludedInExclusionList: (mesh: Mesh, list: ExcludedGeometry) => boolean;
9
+ export { isMeshIncludedInExclusionList };
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMeshIncludedInExclusionList = void 0;
4
+ var mesh_1 = require("@babylonjs/core/Meshes/mesh");
5
+ var variant_1 = require("../classes/variant");
6
+ var variantInstance_1 = require("../classes/variantInstance");
7
+ var element_1 = require("../classes/element");
8
+ /**
9
+ * Find out if a mesh is part of a list of excluded geometry
10
+ * @param mesh BJS mesh
11
+ * @param list list of excluded geometry
12
+ * @returns boolean based on whether mesh was found in list
13
+ */
14
+ var isMeshIncludedInExclusionList = function (mesh, list) {
15
+ var checkMesh = function (inputMesh, meshToCheck) {
16
+ return inputMesh.uniqueId === meshToCheck.uniqueId;
17
+ };
18
+ var checkElement = function (inputEl, meshToCheck) {
19
+ return inputEl.meshesFlat.some(function (m) { return checkMesh(m, meshToCheck); });
20
+ };
21
+ var checkVariant = function (inputVariant, meshToCheck) {
22
+ return inputVariant.elements.some(function (el) { return checkElement(el, meshToCheck); });
23
+ };
24
+ var checkVariantInstance = function (inputVarInst, meshToCheck) {
25
+ return inputVarInst.variant.elements.some(function (el) { return checkElement(el, meshToCheck); });
26
+ };
27
+ var isExcluded = list.some(function (geometryToExclude) {
28
+ if (geometryToExclude instanceof variantInstance_1.VariantInstance) {
29
+ return checkVariantInstance(geometryToExclude, mesh);
30
+ }
31
+ if (geometryToExclude instanceof variant_1.Variant) {
32
+ return checkVariant(geometryToExclude, mesh);
33
+ }
34
+ if (geometryToExclude instanceof element_1.Element) {
35
+ return checkElement(geometryToExclude, mesh);
36
+ }
37
+ if (geometryToExclude instanceof mesh_1.Mesh) {
38
+ return checkMesh(geometryToExclude, mesh);
39
+ }
40
+ return false;
41
+ });
42
+ return isExcluded;
43
+ };
44
+ exports.isMeshIncludedInExclusionList = isMeshIncludedInExclusionList;
45
+ //# sourceMappingURL=structureHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structureHelper.js","sourceRoot":"","sources":["../../../../src/api/util/structureHelper.ts"],"names":[],"mappings":";;;AAAA,oDAAmD;AACnD,8CAA6C;AAC7C,8DAA6D;AAC7D,8CAA6C;AAE7C;;;;;GAKG;AACH,IAAM,6BAA6B,GAAG,UAAU,IAAU,EAAE,IAAsB;IAChF,IAAM,SAAS,GAAG,UAAC,SAAe,EAAE,WAAiB;QACnD,OAAO,SAAS,CAAC,QAAQ,KAAK,WAAW,CAAC,QAAQ,CAAC;IACrD,CAAC,CAAC;IACF,IAAM,YAAY,GAAG,UAAC,OAAgB,EAAE,WAAiB;QACvD,OAAO,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,EAAzB,CAAyB,CAAC,CAAC;IACjE,CAAC,CAAC;IACF,IAAM,YAAY,GAAG,UAAC,YAAqB,EAAE,WAAiB;QAC5D,OAAO,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,EAA7B,CAA6B,CAAC,CAAC;IACzE,CAAC,CAAC;IACF,IAAM,oBAAoB,GAAG,UAAC,YAA6B,EAAE,WAAiB;QAC5E,OAAO,YAAY,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,YAAY,CAAC,EAAE,EAAE,WAAW,CAAC,EAA7B,CAA6B,CAAC,CAAC;IACjF,CAAC,CAAC;IACF,IAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAA,iBAAiB;QAC5C,IAAI,iBAAiB,YAAY,iCAAe,EAAE;YAChD,OAAO,oBAAoB,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SACtD;QACD,IAAI,iBAAiB,YAAY,iBAAO,EAAE;YACxC,OAAO,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SAC9C;QACD,IAAI,iBAAiB,YAAY,iBAAO,EAAE;YACxC,OAAO,YAAY,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SAC9C;QACD,IAAI,iBAAiB,YAAY,WAAI,EAAE;YACrC,OAAO,SAAS,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;SAC3C;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IACH,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAEO,sEAA6B"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@combeenation/3d-viewer",
3
3
  "description": "Combeenation 3D Viewer",
4
- "version": "5.0.0-ar1",
4
+ "version": "5.0.0-beta5",
5
5
  "homepage": "https://github.com/Combeenation/3d-viewer#readme",
6
6
  "keywords": [],
7
7
  "author": "",
@@ -43,10 +43,10 @@
43
43
  "format": "prettier --write ."
44
44
  },
45
45
  "dependencies": {
46
- "@babylonjs/core": "5.0.0-rc.2",
47
- "@babylonjs/inspector": "5.0.0-rc.2",
48
- "@babylonjs/loaders": "5.0.0-rc.2",
49
- "@babylonjs/materials": "5.0.0-rc.2",
46
+ "@babylonjs/core": "^5.6.0",
47
+ "@babylonjs/inspector": "5.6.0",
48
+ "@babylonjs/loaders": "5.6.0",
49
+ "@babylonjs/materials": "5.6.0",
50
50
  "eventemitter3": "^4.0.0",
51
51
  "gsap": "^3.5.1",
52
52
  "lodash-es": "^4.17.15"
@@ -37,6 +37,7 @@ import { DottedPath } from './dottedPath';
37
37
  import { Parameter } from './parameter';
38
38
  import { Variant } from './variant';
39
39
  import { BaseTexture } from '@babylonjs/core/Materials/Textures/baseTexture';
40
+ import { Node } from '@babylonjs/core';
40
41
 
41
42
  /**
42
43
  * An {@link Element} of a {@link Variant}. Acts as a container for diverse definitions. Lives only in the context of a
@@ -134,6 +135,25 @@ export class Element extends VariantParameterizable {
134
135
  return merge({}, this.variant.inheritedParameters, this.parameters);
135
136
  }
136
137
 
138
+ /**
139
+ * The actual {@link Mesh}es that make up this {@link Element}.
140
+ * Handy for e.g. creating a bounding box around an entire element.
141
+ */
142
+ get meshesFlat(): Mesh[] {
143
+ const flatMeshes = this.nodes.reduce((accFlatMeshes, curNode) => {
144
+ const currMeshes = curNode.getChildMeshes(false, n => n instanceof Mesh) as Mesh[];
145
+ return [...accFlatMeshes, ...currMeshes];
146
+ }, [] as Mesh[]);
147
+ return flatMeshes;
148
+ }
149
+
150
+ /**
151
+ * The meshes of this {@link Element}.
152
+ */
153
+ get meshes(): Mesh[] {
154
+ return this.nodes.filter(node => node instanceof Mesh) as Mesh[];
155
+ }
156
+
137
157
  /**
138
158
  * @protected
139
159
  */
@@ -313,14 +333,6 @@ export class Element extends VariantParameterizable {
313
333
  // finally apply the texture on the desired node material
314
334
  setMaterialTexture(node, texture, false);
315
335
 
316
- // WORK IN PROGRESS
317
- const theMaterial: Material = node.material;
318
- const theMaterialTextures = theMaterial.getActiveTextures();
319
- const texturesOnScene: BaseTexture[] = node.getScene().textures;
320
- // node.getScene().textures.push(texture);
321
- // debugger;
322
- // WORK IN PROGRESS
323
-
324
336
  return this;
325
337
  }
326
338
 
@@ -1,4 +1,4 @@
1
- import { IPointerEvent } from '@babylonjs/core';
1
+ import { AbstractMesh, IPointerEvent } from '@babylonjs/core';
2
2
  import { ArcRotateCamera } from '@babylonjs/core/Cameras/arcRotateCamera';
3
3
  import { PickingInfo } from '@babylonjs/core/Collisions/pickingInfo';
4
4
  import { BoundingInfo } from '@babylonjs/core/Culling/boundingInfo';
@@ -12,6 +12,7 @@ import { Mesh } from '@babylonjs/core/Meshes/mesh';
12
12
  import { ScreenshotTools } from '@babylonjs/core/Misc/screenshotTools';
13
13
  import { Scene } from '@babylonjs/core/scene';
14
14
  import { WebXRSessionManager } from '@babylonjs/core/XR/webXRSessionManager';
15
+ import { isMeshIncludedInExclusionList } from '../util/structureHelper';
15
16
  import { isString } from 'lodash-es';
16
17
  import { version } from '../../buildinfo.json';
17
18
  import { sceneSetup } from '../internal/sceneSetup';
@@ -51,6 +52,8 @@ export class Viewer extends EventBroadcaster {
51
52
  // in the future material cloning should be the edge case
52
53
  protected _cloneMaterialsOnMutation: boolean = true;
53
54
 
55
+ protected _isRenderLoopPaused: boolean = false;
56
+
54
57
  static version = version;
55
58
 
56
59
  /**
@@ -177,7 +180,7 @@ export class Viewer extends EventBroadcaster {
177
180
  await this.createVariantInstances();
178
181
  }
179
182
  // create gltf export manager
180
- this._gltfExportManager = await GltfExportManager.create(this.scene);
183
+ this._gltfExportManager = await GltfExportManager.create(this);
181
184
  // resize handler
182
185
  window.addEventListener('resize', debounce(this.resize.bind(this), 100));
183
186
  // wait until scene is completely ready
@@ -186,7 +189,7 @@ export class Viewer extends EventBroadcaster {
186
189
  this.broadcastEvent(Event.BOOTSTRAP_END, this);
187
190
  // render loop
188
191
  this.engine.runRenderLoop(() => {
189
- this.scene.render();
192
+ if (!this._isRenderLoopPaused) this.scene.render();
190
193
  });
191
194
  return this;
192
195
  }
@@ -319,7 +322,7 @@ export class Viewer extends EventBroadcaster {
319
322
  /**
320
323
  * Calculates the bounding box from all visible meshes on the scene.
321
324
  */
322
- public async calculateBoundingBox(): Promise<Mesh> {
325
+ public async calculateBoundingBox(excludeGeometry?: ExcludedGeometry): Promise<Mesh> {
323
326
  if (this.scene.meshes.length === 0) {
324
327
  throw new Error('There are currently no meshes on the scene.');
325
328
  }
@@ -333,7 +336,9 @@ export class Viewer extends EventBroadcaster {
333
336
  const isNotBBoxMesh = bbName !== mesh.id;
334
337
  // ignore meshes with invalid bounding infos
335
338
  const hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
336
- return isEnabled && isNotBBoxMesh && hasValidBBoxInfo;
339
+ // ignore excluded meshes
340
+ const isExcluded = excludeGeometry ? isMeshIncludedInExclusionList(mesh as Mesh, excludeGeometry) : false;
341
+ return isEnabled && isNotBBoxMesh && hasValidBBoxInfo && !isExcluded;
337
342
  })
338
343
  .reduce(
339
344
  (accBBoxMinMax, curMesh, idx) => {
@@ -369,7 +374,7 @@ export class Viewer extends EventBroadcaster {
369
374
  }
370
375
 
371
376
  // get bounding box of all visible meshes, this is the base for the autofocus algorithm
372
- const boundingBox = await this.calculateBoundingBox();
377
+ const boundingBox = await this.calculateBoundingBox(settings?.exclude);
373
378
 
374
379
  // focus the helper camera and set the calculated camera data to the real camera
375
380
  const helperCamera = this.getFocusedHelperCamera(boundingBox, settings);
@@ -419,6 +424,7 @@ export class Viewer extends EventBroadcaster {
419
424
  plane.material.diffuseTexture = dynamicTexture;
420
425
  return plane;
421
426
  };
427
+
422
428
  const axisX = Mesh.CreateLines(
423
429
  'axisX',
424
430
  [
@@ -428,7 +434,8 @@ export class Viewer extends EventBroadcaster {
428
434
  new Vector3(dimension, 0, 0),
429
435
  new Vector3(dimension * 0.95, -0.05 * dimension, 0),
430
436
  ],
431
- scene
437
+ scene,
438
+ false
432
439
  );
433
440
  axisX.color = new Color3(1, 0, 0);
434
441
  const xChar = makeTextPlane('X', 'red', dimension / 10);
@@ -442,7 +449,8 @@ export class Viewer extends EventBroadcaster {
442
449
  new Vector3(0, dimension, 0),
443
450
  new Vector3(0.05 * dimension, dimension * 0.95, 0),
444
451
  ],
445
- scene
452
+ scene,
453
+ false
446
454
  );
447
455
  axisY.color = new Color3(0, 1, 0);
448
456
  const yChar = makeTextPlane('Y', 'green', dimension / 10);
@@ -456,13 +464,28 @@ export class Viewer extends EventBroadcaster {
456
464
  new Vector3(0, 0, dimension),
457
465
  new Vector3(0, 0.05 * dimension, dimension * 0.95),
458
466
  ],
459
- scene
467
+ scene,
468
+ false
460
469
  );
461
470
  axisZ.color = new Color3(0, 0, 1);
462
471
  const zChar = makeTextPlane('Z', 'blue', dimension / 10);
463
472
  zChar.position = new Vector3(0, 0.05 * dimension, 0.9 * dimension);
464
473
  }
465
474
 
475
+ /**
476
+ * Pause render loop.
477
+ */
478
+ public pauseRendering() {
479
+ this._isRenderLoopPaused = true;
480
+ }
481
+
482
+ /**
483
+ * Resume render loop when paused.
484
+ */
485
+ public resumeRendering() {
486
+ this._isRenderLoopPaused = false;
487
+ }
488
+
466
489
  /**
467
490
  * @emits {@link Event.SCENE_PROCESSING_START}
468
491
  * @emits {@link Event.SCENE_PROCESSING_END}
@@ -1,56 +1,93 @@
1
+ import { Mesh } from '@babylonjs/core';
2
+ import { PBRMaterial } from '@babylonjs/core/Materials/PBR/pbrMaterial';
3
+ import { Color3 } from '@babylonjs/core/Maths/math.color';
4
+ import { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh';
1
5
  import { Scene } from '@babylonjs/core/scene';
2
6
  import { GLTF2Export, IExportOptions } from '@babylonjs/serializers';
7
+ import { isMeshIncludedInExclusionList } from '../util/structureHelper';
3
8
  import { merge } from 'lodash-es';
4
9
 
5
10
  export class GltfExportManager {
6
11
  /**
7
12
  * Constructor.
8
13
  */
9
- protected constructor(protected scene: Scene) {}
14
+ protected constructor(protected viewer: Viewer) {}
10
15
 
11
16
  /**
12
17
  * Creates an {@link GltfExportManager}.
13
18
  */
14
- public static async create(scene: Scene): Promise<GltfExportManager> {
15
- return new GltfExportManager(scene);
19
+ public static async create(viewer: Viewer): Promise<GltfExportManager> {
20
+ return new GltfExportManager(viewer);
16
21
  }
17
22
 
18
23
  /**
19
- * Exports selected nodes to a {@link GlbExportResult} blob.
24
+ * Exports selected nodes to a file.
25
+ * @param filename optional name of the exported .GLB file.
20
26
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
27
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export.
21
28
  */
22
- public async exportGlb(exportOptions: IExportOptions = {}): Promise<GlbExportResult> {
23
- const glbData = await GLTF2Export.GLBAsync(this.scene, 'dummy', this.gltfExportOptions(exportOptions));
24
- return glbData.glTFFiles['dummy.glb']; // should be only one file for glb
29
+ public async exportGlb(
30
+ filename = 'glb-export.glb',
31
+ exportOptions: IExportOptions = {},
32
+ excluded?: ExcludedGeometry
33
+ ): Promise<File | undefined> {
34
+ this.exportPreProcess();
35
+ const glbData = await GLTF2Export.GLBAsync(
36
+ this.viewer.scene,
37
+ 'dummy',
38
+ this.gltfExportOptions(exportOptions, excluded)
39
+ );
40
+ this.exportPostProcess();
41
+ const resBlob = glbData.glTFFiles['dummy.glb']; // should be only one file for glb
42
+
43
+ // check if result is valid, according to the typings this could also be a string
44
+ if (resBlob instanceof Blob) {
45
+ if (!filename.endsWith('.glb')) {
46
+ filename += '.glb';
47
+ }
48
+ return new File([resBlob], filename);
49
+ } else {
50
+ // result was not a valid blob
51
+ return undefined;
52
+ }
25
53
  }
26
54
 
27
55
  /**
28
56
  * Exports selected nodes to GLTF. This may result in more than one file, since textures are exported separately.
29
57
  * @param filename name of the main (text-based) .GLTF file referring to separate texture files.
30
58
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
59
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export.
31
60
  */
32
- public async exportGltfToFile(filename: string, exportOptions: IExportOptions = {}) {
33
- await GLTF2Export.GLTFAsync(this.scene, filename, this.gltfExportOptions(exportOptions)).then(glb => {
34
- glb.downloadFiles();
35
- });
61
+ public async exportGltfToFile(filename: string, exportOptions: IExportOptions = {}, excluded?: ExcludedGeometry) {
62
+ this.exportPreProcess();
63
+ await GLTF2Export.GLTFAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions, excluded)).then(
64
+ glb => {
65
+ glb.downloadFiles();
66
+ }
67
+ );
68
+ this.exportPostProcess();
36
69
  }
37
70
 
38
71
  /**
39
72
  * Exports selected nodes to GLB. This results in one binary file.
40
73
  * @param filename name of the .GLB file.
41
74
  * @param exportOptions export options to be merged with default options. See {@link gltfExportOptions}.
75
+ * @param excluded optional list of geometry (meshes, elements, variants, variantInstances) to be excluded from export
42
76
  */
43
- public async exportGlbToFile(filename: string, exportOptions: IExportOptions = {}) {
44
- await GLTF2Export.GLBAsync(this.scene, filename, this.gltfExportOptions(exportOptions)).then(glb => {
45
- glb.downloadFiles();
46
- });
77
+ public async exportGlbToFile(filename: string, exportOptions: IExportOptions = {}, excluded?: ExcludedGeometry) {
78
+ this.exportPreProcess();
79
+ await GLTF2Export.GLBAsync(this.viewer.scene, filename, this.gltfExportOptions(exportOptions, excluded)).then(
80
+ glb => {
81
+ glb.downloadFiles();
82
+ }
83
+ );
84
+ this.exportPostProcess();
47
85
  }
48
86
 
49
87
  /**
50
88
  * Gets predefined {@link IExportOptions } merged with given ones.
51
- * @protected
52
89
  */
53
- protected gltfExportOptions(mergeWithOptions: IExportOptions = {}): IExportOptions {
90
+ protected gltfExportOptions(mergeWithOptions: IExportOptions = {}, excluded?: ExcludedGeometry): IExportOptions {
54
91
  const defaultOptions = {
55
92
  // includeCoordinateSystemConversionNodes: true,
56
93
  shouldExportNode: function (node: any) {
@@ -63,9 +100,93 @@ export class GltfExportManager {
63
100
  if (node.name === '__bounding_box__') {
64
101
  return false;
65
102
  }
103
+ if (excluded && node instanceof Mesh && isMeshIncludedInExclusionList(node, excluded)) {
104
+ return false;
105
+ }
66
106
  return true;
67
107
  },
68
108
  };
69
109
  return merge({}, defaultOptions, mergeWithOptions);
70
110
  }
111
+
112
+ /**
113
+ * Stuff to be done before exporting to GLTF
114
+ */
115
+ protected exportPreProcess() {
116
+ this.viewer.pauseRendering();
117
+ this.exchangeRefractionMaterials();
118
+ }
119
+
120
+ /**
121
+ * Stuff to be done after the GLTF export
122
+ */
123
+ protected exportPostProcess() {
124
+ this.restoreRefractionMaterials();
125
+ this.viewer.resumeRendering();
126
+ }
127
+
128
+ /**
129
+ * Materials with refraction set are not exported properly.
130
+ * Exchange all such (relevant) materials with a more export-friendly version
131
+ */
132
+ protected exchangeRefractionMaterials() {
133
+ for (const n of this.viewer.scene.getNodes()) {
134
+ if (!(n instanceof AbstractMesh)) continue;
135
+ if (!(n.material instanceof PBRMaterial)) continue;
136
+ if (!(n.material as PBRMaterial).subSurface.isRefractionEnabled) continue;
137
+ if ((n.material as PBRMaterial).transparencyMode !== PBRMaterial.PBRMATERIAL_OPAQUE) continue;
138
+ // if we're here, we have a node holding a material with set refraction whose transparencyMode is set to PBRMATERIAL_OPAQUE
139
+ n.material = this.createRefractionMaterialReplacement(n.material);
140
+ }
141
+ }
142
+
143
+ /**
144
+ * Restore original materials with set refraction.
145
+ */
146
+ protected restoreRefractionMaterials() {
147
+ for (const n of this.viewer.scene.getNodes()) {
148
+ if (!(n instanceof AbstractMesh)) continue;
149
+ if (!(n.material instanceof PBRMaterial)) continue;
150
+ if (!this.isMaterialClonedForExport(n.material)) continue;
151
+ // at this point we have a pbrmaterial tagged as cloned in its metadata that's set on a mesh
152
+
153
+ // restore and dispose
154
+ const currMaterial = n.material;
155
+ const prevMaterial = this.viewer.scene.getMaterialByUniqueID(n.material.metadata.clonedFrom);
156
+ if (prevMaterial) {
157
+ n.material = prevMaterial; // restore previous material
158
+ currMaterial.dispose(false, true); // dispose of clone
159
+ }
160
+ }
161
+ }
162
+
163
+ /**
164
+ * Create an export-friendly replacement material for a material using refraction.
165
+ * @param mat Material to be replaced
166
+ */
167
+ protected createRefractionMaterialReplacement(mat: PBRMaterial): PBRMaterial {
168
+ // if we're dealing with a clone already, return it instead of cloning
169
+ if (this.isMaterialClonedForExport(mat)) return mat;
170
+
171
+ // change material according to https://www.notion.so/combeenation/Glas-materials-don-t-look-glasy-after-export-d5fda2c6515e4420a8772744d3e6b460
172
+ let clonedMaterial = mat.clone(mat.name); // clone material. clone uses same name
173
+ clonedMaterial.metadata = { ...mat.metadata, clonedFrom: mat.uniqueId }; // create shallow copy of metadata on clone. see https://forum.babylonjs.com/t/the-metadata-of-the-mesh-cloned-by-the-instantiatemodelstoscene-method-is-a-shallow-copy/21563
174
+ clonedMaterial.refractionTexture = null;
175
+ clonedMaterial.metallicReflectanceTexture = null; // is this the correct one for metallic roughness?
176
+ clonedMaterial.alpha = 0.7;
177
+ clonedMaterial.albedoColor = new Color3(0.3, 0.3, 0.3);
178
+ clonedMaterial.transparencyMode = PBRMaterial.PBRMATERIAL_ALPHABLEND;
179
+ clonedMaterial.metallic = 0.65;
180
+ clonedMaterial.roughness = 0.15;
181
+
182
+ return clonedMaterial;
183
+ }
184
+
185
+ /**
186
+ * Inspect if a material was temporarily cloned for GLB export
187
+ * @param mat Material to be inspected
188
+ */
189
+ protected isMaterialClonedForExport(mat: PBRMaterial): boolean {
190
+ return mat.metadata.clonedFrom;
191
+ }
71
192
  }
@@ -232,6 +232,11 @@ type ScreenshotSettings = {
232
232
  renderSprites?: boolean;
233
233
  };
234
234
 
235
+ /**
236
+ * Use this to define geometry to be excluded from autofocus, GLB export, etc.
237
+ */
238
+ type ExcludedGeometry = (Mesh | VariantInstance | Variant | VariantElement)[];
239
+
235
240
  type AutofocusSettings = {
236
241
  /**
237
242
  * Can be used to customize the margins shown around the 3d model when calling {@link autofocusActiveCamera}.\
@@ -247,6 +252,8 @@ type AutofocusSettings = {
247
252
  beta?: number;
248
253
  /** Optional animation for the focusing camera movement */
249
254
  animation?: string | AnimationDefinition;
255
+ /** Optional list of geometry to be excluded from consideration */
256
+ exclude?: ExcludedGeometry;
250
257
  };
251
258
 
252
259
  type LightDefinitions = {
@@ -393,5 +400,3 @@ type AnimationDefinitions = {
393
400
  * ```
394
401
  */
395
402
  type AnimationDefinition = GSAPTweenVars & { shortestWay?: boolean };
396
-
397
- type GlbExportResult = string | Blob;
@@ -0,0 +1,43 @@
1
+ import { Mesh } from '@babylonjs/core/Meshes/mesh';
2
+ import { Variant } from '../classes/variant';
3
+ import { VariantInstance } from '../classes/variantInstance';
4
+ import { Element } from '../classes/element';
5
+
6
+ /**
7
+ * Find out if a mesh is part of a list of excluded geometry
8
+ * @param mesh BJS mesh
9
+ * @param list list of excluded geometry
10
+ * @returns boolean based on whether mesh was found in list
11
+ */
12
+ const isMeshIncludedInExclusionList = function (mesh: Mesh, list: ExcludedGeometry): boolean {
13
+ const checkMesh = (inputMesh: Mesh, meshToCheck: Mesh) => {
14
+ return inputMesh.uniqueId === meshToCheck.uniqueId;
15
+ };
16
+ const checkElement = (inputEl: Element, meshToCheck: Mesh) => {
17
+ return inputEl.meshesFlat.some(m => checkMesh(m, meshToCheck));
18
+ };
19
+ const checkVariant = (inputVariant: Variant, meshToCheck: Mesh) => {
20
+ return inputVariant.elements.some(el => checkElement(el, meshToCheck));
21
+ };
22
+ const checkVariantInstance = (inputVarInst: VariantInstance, meshToCheck: Mesh) => {
23
+ return inputVarInst.variant.elements.some(el => checkElement(el, meshToCheck));
24
+ };
25
+ const isExcluded = list.some(geometryToExclude => {
26
+ if (geometryToExclude instanceof VariantInstance) {
27
+ return checkVariantInstance(geometryToExclude, mesh);
28
+ }
29
+ if (geometryToExclude instanceof Variant) {
30
+ return checkVariant(geometryToExclude, mesh);
31
+ }
32
+ if (geometryToExclude instanceof Element) {
33
+ return checkElement(geometryToExclude, mesh);
34
+ }
35
+ if (geometryToExclude instanceof Mesh) {
36
+ return checkMesh(geometryToExclude, mesh);
37
+ }
38
+ return false;
39
+ });
40
+ return isExcluded;
41
+ };
42
+
43
+ export { isMeshIncludedInExclusionList };