@combeenation/3d-viewer 13.0.0 → 14.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/dist/lib-cjs/buildinfo.json +1 -1
  2. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  3. package/dist/lib-cjs/index.d.ts +11 -12
  4. package/dist/lib-cjs/index.js +11 -12
  5. package/dist/lib-cjs/index.js.map +1 -1
  6. package/dist/lib-cjs/internal/{cbnCustomBabylonLoaderPlugin.js → cbn-custom-babylon-loader-plugin.js} +17 -9
  7. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js.map +1 -0
  8. package/dist/lib-cjs/internal/{cloningHelper.js → cloning-helper.js} +15 -16
  9. package/dist/lib-cjs/internal/cloning-helper.js.map +1 -0
  10. package/dist/lib-cjs/internal/{deviceHelper.js → device-helper.js} +1 -1
  11. package/dist/lib-cjs/internal/device-helper.js.map +1 -0
  12. package/dist/lib-cjs/internal/{geometryHelper.js → geometry-helper.js} +5 -5
  13. package/dist/lib-cjs/internal/geometry-helper.js.map +1 -0
  14. package/dist/lib-cjs/internal/{metadataHelper.js → metadata-helper.js} +1 -1
  15. package/dist/lib-cjs/internal/metadata-helper.js.map +1 -0
  16. package/dist/lib-cjs/internal/{paintableHelper.js → paintable-helper.js} +1 -1
  17. package/dist/lib-cjs/internal/paintable-helper.js.map +1 -0
  18. package/dist/lib-cjs/internal/{tagsHelper.js → tags-helper.js} +1 -1
  19. package/dist/lib-cjs/internal/tags-helper.js.map +1 -0
  20. package/dist/lib-cjs/manager/camera-manager.d.ts +110 -0
  21. package/dist/lib-cjs/manager/{cameraManager.js → camera-manager.js} +63 -10
  22. package/dist/lib-cjs/manager/camera-manager.js.map +1 -0
  23. package/dist/lib-cjs/manager/{debugManager.js → debug-manager.js} +1 -1
  24. package/dist/lib-cjs/manager/debug-manager.js.map +1 -0
  25. package/dist/lib-cjs/manager/{eventManager.js → event-manager.js} +1 -1
  26. package/dist/lib-cjs/manager/event-manager.js.map +1 -0
  27. package/dist/lib-cjs/manager/{gltfExportManager.js → gltf-export-manager.js} +25 -25
  28. package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -0
  29. package/dist/lib-cjs/manager/{materialManager.js → material-manager.js} +6 -6
  30. package/dist/lib-cjs/manager/material-manager.js.map +1 -0
  31. package/dist/lib-cjs/manager/{modelManager.js → model-manager.js} +8 -6
  32. package/dist/lib-cjs/manager/model-manager.js.map +1 -0
  33. package/dist/lib-cjs/manager/{parameterManager.js → parameter-manager.js} +12 -12
  34. package/dist/lib-cjs/manager/parameter-manager.js.map +1 -0
  35. package/dist/lib-cjs/manager/{sceneManager.js → scene-manager.js} +1 -1
  36. package/dist/lib-cjs/manager/scene-manager.js.map +1 -0
  37. package/dist/lib-cjs/manager/{textureManager.js → texture-manager.js} +1 -1
  38. package/dist/lib-cjs/manager/texture-manager.js.map +1 -0
  39. package/dist/lib-cjs/{viewerError.js → viewer-error.js} +1 -1
  40. package/dist/lib-cjs/viewer-error.js.map +1 -0
  41. package/dist/lib-cjs/viewer.d.ts +1 -3
  42. package/dist/lib-cjs/viewer.js +6 -10
  43. package/dist/lib-cjs/viewer.js.map +1 -1
  44. package/package.json +1 -1
  45. package/src/index.ts +11 -12
  46. package/src/internal/{cbnCustomBabylonLoaderPlugin.ts → cbn-custom-babylon-loader-plugin.ts} +13 -3
  47. package/src/internal/{cloningHelper.ts → cloning-helper.ts} +3 -3
  48. package/src/internal/{geometryHelper.ts → geometry-helper.ts} +2 -2
  49. package/src/manager/{cameraManager.ts → camera-manager.ts} +140 -11
  50. package/src/manager/{gltfExportManager.ts → gltf-export-manager.ts} +4 -4
  51. package/src/manager/{materialManager.ts → material-manager.ts} +1 -1
  52. package/src/manager/{modelManager.ts → model-manager.ts} +5 -3
  53. package/src/manager/{parameterManager.ts → parameter-manager.ts} +3 -3
  54. package/src/viewer.ts +3 -9
  55. package/dist/lib-cjs/internal/cbnCustomBabylonLoaderPlugin.js.map +0 -1
  56. package/dist/lib-cjs/internal/cloningHelper.js.map +0 -1
  57. package/dist/lib-cjs/internal/deviceHelper.js.map +0 -1
  58. package/dist/lib-cjs/internal/geometryHelper.js.map +0 -1
  59. package/dist/lib-cjs/internal/metadataHelper.js.map +0 -1
  60. package/dist/lib-cjs/internal/paintableHelper.js.map +0 -1
  61. package/dist/lib-cjs/internal/tagsHelper.js.map +0 -1
  62. package/dist/lib-cjs/manager/cameraManager.d.ts +0 -51
  63. package/dist/lib-cjs/manager/cameraManager.js.map +0 -1
  64. package/dist/lib-cjs/manager/debugManager.js.map +0 -1
  65. package/dist/lib-cjs/manager/eventManager.js.map +0 -1
  66. package/dist/lib-cjs/manager/gltfExportManager.js.map +0 -1
  67. package/dist/lib-cjs/manager/materialManager.js.map +0 -1
  68. package/dist/lib-cjs/manager/modelManager.js.map +0 -1
  69. package/dist/lib-cjs/manager/parameterManager.js.map +0 -1
  70. package/dist/lib-cjs/manager/sceneManager.js.map +0 -1
  71. package/dist/lib-cjs/manager/screenshotManager.d.ts +0 -36
  72. package/dist/lib-cjs/manager/screenshotManager.js +0 -40
  73. package/dist/lib-cjs/manager/screenshotManager.js.map +0 -1
  74. package/dist/lib-cjs/manager/textureManager.js.map +0 -1
  75. package/dist/lib-cjs/viewerError.js.map +0 -1
  76. package/src/manager/screenshotManager.ts +0 -59
  77. /package/dist/lib-cjs/internal/{cbnCustomBabylonLoaderPlugin.d.ts → cbn-custom-babylon-loader-plugin.d.ts} +0 -0
  78. /package/dist/lib-cjs/internal/{cloningHelper.d.ts → cloning-helper.d.ts} +0 -0
  79. /package/dist/lib-cjs/internal/{deviceHelper.d.ts → device-helper.d.ts} +0 -0
  80. /package/dist/lib-cjs/internal/{geometryHelper.d.ts → geometry-helper.d.ts} +0 -0
  81. /package/dist/lib-cjs/internal/{metadataHelper.d.ts → metadata-helper.d.ts} +0 -0
  82. /package/dist/lib-cjs/internal/{paintableHelper.d.ts → paintable-helper.d.ts} +0 -0
  83. /package/dist/lib-cjs/internal/{tagsHelper.d.ts → tags-helper.d.ts} +0 -0
  84. /package/dist/lib-cjs/manager/{debugManager.d.ts → debug-manager.d.ts} +0 -0
  85. /package/dist/lib-cjs/manager/{eventManager.d.ts → event-manager.d.ts} +0 -0
  86. /package/dist/lib-cjs/manager/{gltfExportManager.d.ts → gltf-export-manager.d.ts} +0 -0
  87. /package/dist/lib-cjs/manager/{materialManager.d.ts → material-manager.d.ts} +0 -0
  88. /package/dist/lib-cjs/manager/{modelManager.d.ts → model-manager.d.ts} +0 -0
  89. /package/dist/lib-cjs/manager/{parameterManager.d.ts → parameter-manager.d.ts} +0 -0
  90. /package/dist/lib-cjs/manager/{sceneManager.d.ts → scene-manager.d.ts} +0 -0
  91. /package/dist/lib-cjs/manager/{textureManager.d.ts → texture-manager.d.ts} +0 -0
  92. /package/dist/lib-cjs/{viewerError.d.ts → viewer-error.d.ts} +0 -0
  93. /package/src/{globalTypes.d.ts → global-types.d.ts} +0 -0
  94. /package/src/internal/{deviceHelper.ts → device-helper.ts} +0 -0
  95. /package/src/internal/{metadataHelper.ts → metadata-helper.ts} +0 -0
  96. /package/src/internal/{paintableHelper.ts → paintable-helper.ts} +0 -0
  97. /package/src/internal/{tagsHelper.ts → tags-helper.ts} +0 -0
  98. /package/src/manager/{debugManager.ts → debug-manager.ts} +0 -0
  99. /package/src/manager/{eventManager.ts → event-manager.ts} +0 -0
  100. /package/src/manager/{sceneManager.ts → scene-manager.ts} +0 -0
  101. /package/src/manager/{textureManager.ts → texture-manager.ts} +0 -0
  102. /package/src/{viewerError.ts → viewer-error.ts} +0 -0
@@ -1,4 +1,4 @@
1
- /// <reference path="../../src/globalTypes.d.ts" />
1
+ /// <reference path="../../src/global-types.d.ts" />
2
2
  import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression';
3
3
  import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat';
4
4
  import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior';
@@ -50,14 +50,13 @@ export * from '@babylonjs/core/Helpers/sceneHelpers';
50
50
  export * from '@babylonjs/core/Materials/Background';
51
51
  export * from '@babylonjs/core/Materials/Node';
52
52
  export * from './viewer';
53
- export * from './viewerError';
54
- export * from './manager/cameraManager';
55
- export * from './manager/debugManager';
56
- export * from './manager/eventManager';
57
- export * from './manager/gltfExportManager';
58
- export * from './manager/materialManager';
59
- export * from './manager/modelManager';
60
- export * from './manager/parameterManager';
61
- export * from './manager/sceneManager';
62
- export * from './manager/screenshotManager';
63
- export * from './manager/textureManager';
53
+ export * from './viewer-error';
54
+ export * from './manager/camera-manager';
55
+ export * from './manager/debug-manager';
56
+ export * from './manager/event-manager';
57
+ export * from './manager/gltf-export-manager';
58
+ export * from './manager/material-manager';
59
+ export * from './manager/model-manager';
60
+ export * from './manager/parameter-manager';
61
+ export * from './manager/scene-manager';
62
+ export * from './manager/texture-manager';
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- /// <reference path="globalTypes.d.ts" />
17
+ /// <reference path="global-types.d.ts" />
18
18
  // Babylon.js extensions
19
19
  require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression");
20
20
  require("@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat");
@@ -82,15 +82,14 @@ __exportStar(require("@babylonjs/core/Materials/Node"), exports);
82
82
  // Viewer modules
83
83
  // all viewer modules that are not located in "internal" should be exported from here
84
84
  __exportStar(require("./viewer"), exports);
85
- __exportStar(require("./viewerError"), exports);
86
- __exportStar(require("./manager/cameraManager"), exports);
87
- __exportStar(require("./manager/debugManager"), exports);
88
- __exportStar(require("./manager/eventManager"), exports);
89
- __exportStar(require("./manager/gltfExportManager"), exports);
90
- __exportStar(require("./manager/materialManager"), exports);
91
- __exportStar(require("./manager/modelManager"), exports);
92
- __exportStar(require("./manager/parameterManager"), exports);
93
- __exportStar(require("./manager/sceneManager"), exports);
94
- __exportStar(require("./manager/screenshotManager"), exports);
95
- __exportStar(require("./manager/textureManager"), exports);
85
+ __exportStar(require("./viewer-error"), exports);
86
+ __exportStar(require("./manager/camera-manager"), exports);
87
+ __exportStar(require("./manager/debug-manager"), exports);
88
+ __exportStar(require("./manager/event-manager"), exports);
89
+ __exportStar(require("./manager/gltf-export-manager"), exports);
90
+ __exportStar(require("./manager/material-manager"), exports);
91
+ __exportStar(require("./manager/model-manager"), exports);
92
+ __exportStar(require("./manager/parameter-manager"), exports);
93
+ __exportStar(require("./manager/scene-manager"), exports);
94
+ __exportStar(require("./manager/texture-manager"), exports);
96
95
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAyC;AACzC,wBAAwB;AACxB,6EAA2E;AAC3E,0EAAwE;AACxE,oEAAkE;AAClE,sFAAoF;AACpF,sEAAoE;AACpE,yEAAuE;AACvE,6EAA2E;AAC3E,6EAA2E;AAC3E,sEAAoE;AACpE,yEAAuE;AACvE,qEAAmE;AACnE,wEAAsE;AACtE,4EAA0E;AAE1E,qBAAqB;AACrB,2DAA2D;AAC3D,wHAAwH;AACxH,+CAA+C;AAC/C,yGAAyG;AACzG,iEAAiE;AACjE,gEAA8C;AAC9C,6DAA2C;AAC3C,iEAA+C;AAC/C,0DAAwC;AACxC,0EAAwD;AACxD,iEAA+C;AAC/C,0DAAwC;AACxC,mEAAiD;AACjD,mEAAiD;AACjD,iEAA+C;AAC/C,qEAAmD;AACnD,yDAAuC;AACvC,0DAAwC;AACxC,qEAAmD;AACnD,gEAA8C;AAC9C,6EAA2D;AAC3D,qEAAmD;AACnD,wDAAsC;AACtC,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,8DAA4C;AAC5C,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,uEAAqD;AACrD,wDAAsC;AACtC,uDAAqC;AACrC,iFAA+D;AAC/D,wDAAsC;AACtC,wDAAsC;AACtC,yEAAuD;AACvD,iFAA+D;AAE/D,gCAAgC;AAChC,sHAAsH;AACtH,UAAU;AACV,2DAA2D;AAC3D,6DAA2C;AAC3C,qCAAqC;AACrC,uEAAqD;AACrD,sDAAsD;AACtD,uEAAqD;AACrD,gDAAgD;AAChD,iEAA+C;AAE/C,iBAAiB;AACjB,qFAAqF;AACrF,2CAAyB;AACzB,gDAA8B;AAC9B,0DAAwC;AACxC,yDAAuC;AACvC,yDAAuC;AACvC,8DAA4C;AAC5C,4DAA0C;AAC1C,yDAAuC;AACvC,6DAA2C;AAC3C,yDAAuC;AACvC,8DAA4C;AAC5C,2DAAyC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAA0C;AAC1C,wBAAwB;AACxB,6EAA2E;AAC3E,0EAAwE;AACxE,oEAAkE;AAClE,sFAAoF;AACpF,sEAAoE;AACpE,yEAAuE;AACvE,6EAA2E;AAC3E,6EAA2E;AAC3E,sEAAoE;AACpE,yEAAuE;AACvE,qEAAmE;AACnE,wEAAsE;AACtE,4EAA0E;AAE1E,qBAAqB;AACrB,2DAA2D;AAC3D,wHAAwH;AACxH,+CAA+C;AAC/C,yGAAyG;AACzG,iEAAiE;AACjE,gEAA8C;AAC9C,6DAA2C;AAC3C,iEAA+C;AAC/C,0DAAwC;AACxC,0EAAwD;AACxD,iEAA+C;AAC/C,0DAAwC;AACxC,mEAAiD;AACjD,mEAAiD;AACjD,iEAA+C;AAC/C,qEAAmD;AACnD,yDAAuC;AACvC,0DAAwC;AACxC,qEAAmD;AACnD,gEAA8C;AAC9C,6EAA2D;AAC3D,qEAAmD;AACnD,wDAAsC;AACtC,sEAAoD;AACpD,kEAAgD;AAChD,uEAAqD;AACrD,8DAA4C;AAC5C,qEAAmD;AACnD,uEAAqD;AACrD,iFAA+D;AAC/D,uEAAqD;AACrD,wDAAsC;AACtC,uDAAqC;AACrC,iFAA+D;AAC/D,wDAAsC;AACtC,wDAAsC;AACtC,yEAAuD;AACvD,iFAA+D;AAE/D,gCAAgC;AAChC,sHAAsH;AACtH,UAAU;AACV,2DAA2D;AAC3D,6DAA2C;AAC3C,qCAAqC;AACrC,uEAAqD;AACrD,sDAAsD;AACtD,uEAAqD;AACrD,gDAAgD;AAChD,iEAA+C;AAE/C,iBAAiB;AACjB,qFAAqF;AACrF,2CAAyB;AACzB,iDAA+B;AAC/B,2DAAyC;AACzC,0DAAwC;AACxC,0DAAwC;AACxC,gEAA8C;AAC9C,6DAA2C;AAC3C,0DAAwC;AACxC,8DAA4C;AAC5C,0DAAwC;AACxC,4DAA0C"}
@@ -2,9 +2,9 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.registerCustomCbnBabylonLoaderPlugin = void 0;
4
4
  const index_1 = require("../index");
5
- const cloningHelper_1 = require("./cloningHelper");
6
- const metadataHelper_1 = require("./metadataHelper");
7
- const tagsHelper_1 = require("./tagsHelper");
5
+ const cloning_helper_1 = require("./cloning-helper");
6
+ const metadata_helper_1 = require("./metadata-helper");
7
+ const tags_helper_1 = require("./tags-helper");
8
8
  const lodash_es_1 = require("lodash-es");
9
9
  /**
10
10
  * Create and return a custom loader plugin to be registered with SceneLoader, that allows
@@ -26,11 +26,19 @@ function registerCustomCbnBabylonLoaderPlugin() {
26
26
  importMesh: previousLoaderPlugin.importMesh,
27
27
  load: previousLoaderPlugin.load,
28
28
  loadAssetContainer: function (scene, data, rootUrl, onError) {
29
+ // temporarily remove all morph target managers from scene before loading the model to avoid clashes with existing
30
+ // unique ids => see CB-9928
31
+ // NOTE: morph target managers still exist on the dedicated mesh when getting removed from the scene, only
32
+ // `scene.getMorphTargetManagerById` is affected, which is used internally in the `loadAssetContainer` function
33
+ const curMorphTargetManagers = scene.morphTargetManagers;
34
+ scene.morphTargetManagers = [];
29
35
  const dataParsed = JSON.parse(data);
30
36
  const importedContainer = previousLoaderPlugin.loadAssetContainer(scene, data, rootUrl);
31
37
  _addMissingMaterialMetadata(dataParsed, importedContainer);
32
38
  _reconstructTagsForInstancedMeshes(dataParsed, importedContainer);
33
39
  _unifyMorphTargetManagerIds(importedContainer, scene);
40
+ // restore existing morph target managers
41
+ scene.morphTargetManagers.push(...curMorphTargetManagers);
34
42
  return importedContainer;
35
43
  },
36
44
  };
@@ -67,7 +75,7 @@ function _addMissingMaterialMetadata(dataParsed, container) {
67
75
  const materialOnOriginalMesh = parsedMesh === null || parsedMesh === void 0 ? void 0 : parsedMesh.materialId;
68
76
  if (materialOnOriginalMesh && materialOnImportedMesh !== materialOnOriginalMesh) {
69
77
  (_b = window.Cbn) === null || _b === void 0 ? void 0 : _b.Assets.assertMaterialExists(materialOnOriginalMesh);
70
- (0, metadataHelper_1.setInternalMetadataValue)(importedMesh, 'deferredMaterial', materialOnOriginalMesh);
78
+ (0, metadata_helper_1.setInternalMetadataValue)(importedMesh, 'deferredMaterial', materialOnOriginalMesh);
71
79
  }
72
80
  });
73
81
  }
@@ -92,16 +100,16 @@ function _reconstructTagsForInstancedMeshes(dataParsed, container) {
92
100
  if (importedMesh instanceof index_1.InstancedMesh) {
93
101
  // remove all tags from the imported mesh if there are some, since these tags are probably coming from the
94
102
  // source mesh, if no tags are set there is no need for further operation though
95
- const hasTags = (0, tagsHelper_1.getTags)(importedMesh);
103
+ const hasTags = (0, tags_helper_1.getTags)(importedMesh);
96
104
  if (hasTags) {
97
- (0, tagsHelper_1.deleteAllTags)(importedMesh);
105
+ (0, tags_helper_1.deleteAllTags)(importedMesh);
98
106
  // get tags of parsed instanced mesh and set them on the imported instanced mesh
99
107
  const parsedSourceMesh = validatedMeshes.find(mesh => mesh.name === importedMesh.sourceMesh.name);
100
108
  const validatedSourceMeshInstances = (_a = parsedSourceMesh === null || parsedSourceMesh === void 0 ? void 0 : parsedSourceMesh.instances) === null || _a === void 0 ? void 0 : _a.filter(_isMeshInstanceData);
101
109
  const parsedInstancedMesh = validatedSourceMeshInstances === null || validatedSourceMeshInstances === void 0 ? void 0 : validatedSourceMeshInstances.find(mesh => mesh.name === importedMesh.name);
102
110
  const parsedTags = parsedInstancedMesh === null || parsedInstancedMesh === void 0 ? void 0 : parsedInstancedMesh.tags;
103
111
  if (parsedTags) {
104
- (0, tagsHelper_1.setTagsAsString)(importedMesh, parsedTags);
112
+ (0, tags_helper_1.setTagsAsString)(importedMesh, parsedTags);
105
113
  }
106
114
  }
107
115
  }
@@ -113,7 +121,7 @@ function _reconstructTagsForInstancedMeshes(dataParsed, container) {
113
121
  */
114
122
  function _unifyMorphTargetManagerIds(container, scene) {
115
123
  [...container.morphTargetManagers].forEach(sourceMTM => {
116
- const clonedMTM = (0, cloningHelper_1.cloneMorphTargetManager)(sourceMTM, container);
124
+ const clonedMTM = (0, cloning_helper_1.cloneMorphTargetManager)(sourceMTM, container);
117
125
  // clone function adds morph target manager to scene right, which we don't want here as we are only loading the
118
126
  // asset container
119
127
  scene.removeMorphTargetManager(clonedMTM);
@@ -121,4 +129,4 @@ function _unifyMorphTargetManagerIds(container, scene) {
121
129
  sourceMTM.dispose();
122
130
  });
123
131
  }
124
- //# sourceMappingURL=cbnCustomBabylonLoaderPlugin.js.map
132
+ //# sourceMappingURL=cbn-custom-babylon-loader-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cbn-custom-babylon-loader-plugin.js","sourceRoot":"","sources":["../../../src/internal/cbn-custom-babylon-loader-plugin.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.cloneMorphTargetManager = exports.cloneModelAssetContainer = void 0;
4
4
  const index_1 = require("../index");
5
- const metadataHelper_1 = require("./metadataHelper");
6
- const tagsHelper_1 = require("./tagsHelper");
5
+ const metadata_helper_1 = require("./metadata-helper");
6
+ const tags_helper_1 = require("./tags-helper");
7
7
  const _defaultNodeNamingStrategy = (node, newModelName) => {
8
8
  return `${node.name}.${newModelName}`;
9
9
  };
@@ -60,8 +60,7 @@ function cloneMorphTargetManager(sourceMTM, targetAssetContainer) {
60
60
  clonedMTM._parentContainer = targetAssetContainer;
61
61
  targetAssetContainer.morphTargetManagers.push(clonedMTM);
62
62
  targetAssetContainer.meshes.forEach(mesh => {
63
- var _a;
64
- if (((_a = mesh.morphTargetManager) === null || _a === void 0 ? void 0 : _a.uniqueId) === sourceMTM.uniqueId) {
63
+ if (mesh.morphTargetManager === sourceMTM) {
65
64
  mesh.morphTargetManager = clonedMTM;
66
65
  }
67
66
  });
@@ -85,17 +84,17 @@ function _cloneNode(node, newModelName, newParent, assetContainer, renaming) {
85
84
  clone.id = cloneName;
86
85
  // create a deep clone for internal metadata, as the default clone function uses the same assignment of the sources
87
86
  // internal metadata
88
- (0, metadataHelper_1.cloneInternalMetadata)(node, clone);
87
+ (0, metadata_helper_1.cloneInternalMetadata)(node, clone);
89
88
  // ATM the assignment from clone to source is needed for reassigning instanced meshes after cloning
90
89
  // may be usefull for other node types in the future as well
91
- (0, metadataHelper_1.setInternalMetadataValue)(clone, 'cloneSource', node.uniqueId);
92
- (0, metadataHelper_1.setInternalMetadataValue)(node, 'cloneTarget', clone.uniqueId);
90
+ (0, metadata_helper_1.setInternalMetadataValue)(clone, 'cloneSource', node.uniqueId);
91
+ (0, metadata_helper_1.setInternalMetadataValue)(node, 'cloneTarget', clone.uniqueId);
93
92
  if (node instanceof index_1.InstancedMesh) {
94
93
  _cloneInstancedMeshData(node, clone);
95
94
  }
96
- const sourceTags = (0, tagsHelper_1.getTags)(node);
95
+ const sourceTags = (0, tags_helper_1.getTags)(node);
97
96
  const mappedTags = sourceTags.map(tag => tagNamingStrategy(tag, newModelName));
98
- (0, tagsHelper_1.setTags)(clone, mappedTags);
97
+ (0, tags_helper_1.setTags)(clone, mappedTags);
99
98
  clone._parentContainer = assetContainer;
100
99
  // TODO WTT: create global helper function for distinguishing between transform nodes and meshes
101
100
  if (clone instanceof index_1.AbstractMesh) {
@@ -117,10 +116,10 @@ function _reAssignSourceMesh(node, sourceMeshes, clonedMeshes) {
117
116
  if (node instanceof index_1.InstancedMesh) {
118
117
  // find the cloned instance and source mesh
119
118
  const clonedInstance = node;
120
- const originalInstance = _findByUniqueId(sourceMeshes, (0, metadataHelper_1.getInternalMetadataValue)(clonedInstance, 'cloneSource'));
119
+ const originalInstance = _findByUniqueId(sourceMeshes, (0, metadata_helper_1.getInternalMetadataValue)(clonedInstance, 'cloneSource'));
121
120
  if (originalInstance instanceof index_1.InstancedMesh) {
122
121
  const originalSource = originalInstance.sourceMesh;
123
- const clonedSource = _findByUniqueId(clonedMeshes, (0, metadataHelper_1.getInternalMetadataValue)(originalSource, 'cloneTarget'));
122
+ const clonedSource = _findByUniqueId(clonedMeshes, (0, metadata_helper_1.getInternalMetadataValue)(originalSource, 'cloneTarget'));
124
123
  if (clonedSource instanceof index_1.Mesh) {
125
124
  // it's not possible to just exchange the source mesh => readonly property
126
125
  // we have to create a new clone with the correct source mesh
@@ -145,8 +144,8 @@ function _reAssignSourceMesh(node, sourceMeshes, clonedMeshes) {
145
144
  */
146
145
  function _clearCloningMetadata(assetContainer) {
147
146
  [...assetContainer.meshes, ...assetContainer.transformNodes].forEach(node => {
148
- (0, metadataHelper_1.clearInternalMetadataValue)(node, 'cloneSource');
149
- (0, metadataHelper_1.clearInternalMetadataValue)(node, 'cloneTarget');
147
+ (0, metadata_helper_1.clearInternalMetadataValue)(node, 'cloneSource');
148
+ (0, metadata_helper_1.clearInternalMetadataValue)(node, 'cloneTarget');
150
149
  });
151
150
  }
152
151
  /**
@@ -156,10 +155,10 @@ function _clearCloningMetadata(assetContainer) {
156
155
  */
157
156
  function _cloneInstancedMeshData(sourceInstancedMesh, targetInstancedMesh) {
158
157
  targetInstancedMesh.setEnabled(sourceInstancedMesh.isEnabled(false));
159
- (0, metadataHelper_1.cloneMetadata)(sourceInstancedMesh, targetInstancedMesh);
160
- (0, tagsHelper_1.cloneTags)(sourceInstancedMesh, targetInstancedMesh);
158
+ (0, metadata_helper_1.cloneMetadata)(sourceInstancedMesh, targetInstancedMesh);
159
+ (0, tags_helper_1.cloneTags)(sourceInstancedMesh, targetInstancedMesh);
161
160
  }
162
161
  function _findByUniqueId(nodes, uniqueId) {
163
162
  return nodes.find(node => node.uniqueId === uniqueId);
164
163
  }
165
- //# sourceMappingURL=cloningHelper.js.map
164
+ //# sourceMappingURL=cloning-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloning-helper.js","sourceRoot":"","sources":["../../../src/internal/cloning-helper.ts"],"names":[],"mappings":"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"}
@@ -22,4 +22,4 @@ function getIsScaledDownDevice(limitTextureSize) {
22
22
  return deviceFits;
23
23
  }
24
24
  exports.getIsScaledDownDevice = getIsScaledDownDevice;
25
- //# sourceMappingURL=deviceHelper.js.map
25
+ //# sourceMappingURL=device-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-helper.js","sourceRoot":"","sources":["../../../src/internal/device-helper.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,SAAgB,WAAW;IACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAEpD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAJD,kCAIC;AAED;;GAEG;AACH,SAAgB,qBAAqB,CAAC,gBAAgD;IACpF,IAAI,CAAC,gBAAgB,EAAE;QACrB,0BAA0B;QAC1B,OAAO,KAAK,CAAC;KACd;IAED,eAAe;IACf,MAAM,UAAU,GAAG,gBAAgB,CAAC,OAAO,KAAK,KAAK,IAAI,CAAC,gBAAgB,CAAC,OAAO,KAAK,QAAQ,IAAI,WAAW,EAAE,CAAC,CAAC;IAElH,OAAO,UAAU,CAAC;AACpB,CAAC;AAVD,sDAUC"}
@@ -2,8 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resetTransformation = exports.bakeGeometryOfMesh = exports.createMeshFromInstancedMesh = exports.isNodeExcluded = void 0;
4
4
  const index_1 = require("../index");
5
- const metadataHelper_1 = require("./metadataHelper");
6
- const tagsHelper_1 = require("./tagsHelper");
5
+ const metadata_helper_1 = require("./metadata-helper");
6
+ const tags_helper_1 = require("./tags-helper");
7
7
  /**
8
8
  * Find out if a node is part of a list of excluded geometry
9
9
  * @param node BJS node
@@ -15,7 +15,7 @@ function isNodeExcluded(nodeToCheck, list) {
15
15
  const checkNode = (excludedNode) => excludedNode === nodeToCheck;
16
16
  const checkTagManagerSubject = (excludedSubject) => {
17
17
  const nameMatches = !!excludedSubject.nodeName && excludedSubject.nodeName === nodeToCheck.name;
18
- const tagMatches = !!excludedSubject.tagName && (0, tagsHelper_1.hasTag)(nodeToCheck, excludedSubject.tagName);
18
+ const tagMatches = !!excludedSubject.tagName && (0, tags_helper_1.hasTag)(nodeToCheck, excludedSubject.tagName);
19
19
  return nameMatches || tagMatches;
20
20
  };
21
21
  const check = (geometryToExclude) => {
@@ -41,7 +41,7 @@ exports.isNodeExcluded = isNodeExcluded;
41
41
  function createMeshFromInstancedMesh(instancedMesh, newName, clonedParent) {
42
42
  // first create a clone of the source mesh
43
43
  const newMesh = instancedMesh.sourceMesh.clone(newName, clonedParent, true);
44
- (0, metadataHelper_1.cloneInternalMetadata)(instancedMesh.sourceMesh, newMesh);
44
+ (0, metadata_helper_1.cloneInternalMetadata)(instancedMesh.sourceMesh, newMesh);
45
45
  // apply the transformation data, it's important to create clones of the transformations to not touch the original
46
46
  // transformation when applying changes (eg: geometry baking)
47
47
  newMesh.position = instancedMesh.position.clone();
@@ -143,4 +143,4 @@ function _getVerticesDataFromMorphTarget(kind, morphTarget) {
143
143
  }
144
144
  return null;
145
145
  }
146
- //# sourceMappingURL=geometryHelper.js.map
146
+ //# sourceMappingURL=geometry-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry-helper.js","sourceRoot":"","sources":["../../../src/internal/geometry-helper.ts"],"names":[],"mappings":"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"}
@@ -48,4 +48,4 @@ function cloneMetadata(sourceObject, targetObject) {
48
48
  targetObject.metadata = clonedMetadata;
49
49
  }
50
50
  exports.cloneMetadata = cloneMetadata;
51
- //# sourceMappingURL=metadataHelper.js.map
51
+ //# sourceMappingURL=metadata-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata-helper.js","sourceRoot":"","sources":["../../../src/internal/metadata-helper.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AAiBtC,wGAAwG;AACxG;;;;;GAKG;AACH,SAAgB,wBAAwB,CAAC,MAAsB,EAAE,GAAiB,EAAE,KAAoB;IACtG,IAAI,CAAC,MAAM,CAAC,iBAAiB,EAAE;QAC7B,MAAM,CAAC,iBAAiB,GAAG,EAAE,CAAC;KAC/B;IACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE;QACjC,MAAM,CAAC,iBAAiB,CAAC,GAAG,GAAG,EAAE,CAAC;KACnC;IAED,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAC5C,CAAC;AATD,4DASC;AAED,SAAgB,0BAA0B,CAAC,MAAsB,EAAE,GAAiB;;IAC3E,MAAA,MAAA,MAAM,CAAC,iBAAiB,0CAAE,GAAG,+CAAG,GAAG,CAAC,CAAC;AAC9C,CAAC;AAFD,gEAEC;AAED,SAAgB,wBAAwB,CAAC,MAAsB,EAAE,GAAiB;;IAChF,OAAO,MAAA,MAAA,MAAM,CAAC,iBAAiB,0CAAE,GAAG,0CAAG,GAAG,CAAC,CAAC;AAC9C,CAAC;AAFD,4DAEC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CAAC,YAA4B,EAAE,YAA4B;IAC9F,YAAY,CAAC,iBAAiB,GAAG,IAAA,qBAAS,EAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAC7E,CAAC;AAFD,sDAEC;AAED;;;;GAIG;AACH,SAAgB,aAAa,CAAC,YAA4B,EAAE,YAA4B;IACtF,MAAM,cAAc,GAAG,IAAA,qBAAS,EAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IAExD,YAAY,CAAC,QAAQ,GAAG,cAAc,CAAC;AACzC,CAAC;AAJD,sCAIC"}
@@ -284,4 +284,4 @@ function _fetchBase64AssetUrl(assetUrl) {
284
284
  });
285
285
  });
286
286
  }
287
- //# sourceMappingURL=paintableHelper.js.map
287
+ //# sourceMappingURL=paintable-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paintable-helper.js","sourceRoot":"","sources":["../../../src/internal/paintable-helper.ts"],"names":[],"mappings":"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"}
@@ -35,4 +35,4 @@ function cloneTags(sourceObject, destinationObject) {
35
35
  }
36
36
  }
37
37
  exports.cloneTags = cloneTags;
38
- //# sourceMappingURL=tagsHelper.js.map
38
+ //# sourceMappingURL=tags-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tags-helper.js","sourceRoot":"","sources":["../../../src/internal/tags-helper.ts"],"names":[],"mappings":";;;AACA,oDAAiD;AAQjD,SAAgB,MAAM,CAAC,MAAiB,EAAE,GAAW;IACnD,OAAO,WAAI,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxC,CAAC;AAFD,wBAEC;AAED,SAAgB,OAAO,CAAC,MAAiB;;IACvC,MAAM,UAAU,GAAG,MAAA,WAAI,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,mCAAI,EAAE,CAAC;IACrD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAErC,OAAO,IAAI,CAAC;AACd,CAAC;AALD,0BAKC;AAED,SAAgB,OAAO,CAAC,MAAiB,EAAE,IAAc;IACvD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAHD,0BAGC;AAED,SAAgB,aAAa,CAAC,MAAiB;IAC7C,MAAM,OAAO,GAAG,WAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACrC,IAAI,OAAO,EAAE;QACX,WAAI,CAAC,cAAc,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACtC;AACH,CAAC;AALD,sCAKC;AAED,SAAgB,eAAe,CAAC,MAAiB,EAAE,UAAkB;IACnE,WAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACrC,CAAC;AAFD,0CAEC;AAED,SAAgB,SAAS,CAAC,YAAuB,EAAE,iBAA4B;IAC7E,IAAI,WAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;QAC9B,WAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,WAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;KACrE;AACH,CAAC;AAJD,8BAIC"}
@@ -0,0 +1,110 @@
1
+ import { AnimationGroup, ArcRotateCamera, BoundingSphere, ExcludedGeometryList, Vector3, Viewer } from '../index';
2
+ export declare type CameraPosition = {
3
+ alpha: number;
4
+ beta: number;
5
+ radius: number;
6
+ target: Vector3;
7
+ };
8
+ export declare type AutofocusSettings = {
9
+ /** Can be used to customize the margins shown around the 3d model. Defaults to 1. */
10
+ radiusFactor?: number;
11
+ adjustWheelPrecision?: boolean;
12
+ adjustPanningSensibility?: boolean;
13
+ adjustPinchPrecision?: boolean;
14
+ /** Desired horizontal camera angle, this won't be overwritten by the autofocus function */
15
+ alpha?: number;
16
+ /** Desired vertical camera angle, this won't be overwritten by the autofocus function */
17
+ beta?: number;
18
+ /** Optional list of geometry to be excluded from consideration */
19
+ exclude?: ExcludedGeometryList;
20
+ durationMs?: number;
21
+ };
22
+ export declare type ScreenshotSettings = {
23
+ /** Width of the final screenshot image, defaults to canvas width */
24
+ width?: number;
25
+ /** Height of the final screenshot image, defaults to canvas height */
26
+ height?: number;
27
+ /** Camera alpha angle used for the screenshot, defaults to alpha angle of currently active camera */
28
+ alpha?: number;
29
+ /** Camera beta angle used for the screenshot, defaults to beta angle of currently active camera */
30
+ beta?: number;
31
+ /**
32
+ * Camera radius used for the screenshot, default value depends on `autofocusScene` flag:
33
+ * - `true`: radius is calculated automatically so that the whole current scene content is visible
34
+ * - `false`: radius of currently active camera is used
35
+ */
36
+ radius?: number;
37
+ /**
38
+ * Camera target used for the screenshot, default value depends on `autofocusScene` flag:
39
+ * - `true`: center of the current scene content is set as camera target
40
+ * - `false`: target of currently active camera is used
41
+ */
42
+ target?: Vector3;
43
+ /** Used to scale the calculated radius if `radius` property is not set and `autofocusScene` mode is active */
44
+ radiusFactor?: number;
45
+ /** Can be used to automatically calculate camera `radius` and `target`, if these 2 settings are not defined
46
+ * explicitely */
47
+ autofocusScene?: boolean;
48
+ /** Optional list of geometry to be excluded from consideration */
49
+ exclude?: ExcludedGeometryList;
50
+ /**
51
+ * "MIME type" of the returned screenshot image, defaults to `image/png`
52
+ *
53
+ * **Info regarding JPEG:** \
54
+ * Use mimeType `image/jpeg` (**not** `image/jpg`) when creating jpeg's. \
55
+ * Also ensure that the viewer scenes `clearColor` has an alpha value of `1` as jpeg's don't
56
+ * support transparency. Otherwise background will always be black for jpeg's.
57
+ */
58
+ mimeType?: string;
59
+ /** If file name is given, the screenshot image will be downloaded and the base64 string will NOT be returned! */
60
+ fileName?: string;
61
+ /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
62
+ samples?: number;
63
+ /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
64
+ antialiasing?: boolean;
65
+ /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
66
+ renderSprites?: boolean;
67
+ /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
68
+ enableStencilBuffer?: boolean;
69
+ /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
70
+ useLayerMask?: boolean;
71
+ /** Expert settings to tweak the screenshot image, see [Babylon.js](https://doc.babylonjs.com/typedoc/functions/BABYLON.CreateScreenshotUsingRenderTarget) docs for further information */
72
+ quality?: number;
73
+ };
74
+ /**
75
+ * Manager for camera related tasks
76
+ */
77
+ export declare class CameraManager {
78
+ protected viewer: Viewer;
79
+ static readonly CAMERA_ANIMATION_NAME = "__cameraAnimation__";
80
+ /** @internal */
81
+ static readonly DEFAULT_CAMERA_POSITION: CameraPosition;
82
+ protected static readonly _AUTOFOCUS_CONSTANTS: {
83
+ minZ: number;
84
+ wheelPrecision: number;
85
+ panningSensibility: number;
86
+ pinchPrecision: number;
87
+ };
88
+ protected static readonly _DEFAULT_AUTOFOCUS_RADIUS_FACTOR = 1;
89
+ protected static readonly _DEFAULT_CAM_SPEED_MS = 250;
90
+ protected static readonly _SCREENSHOT_CAMERA_NAME = "__screenshotCamera__";
91
+ /** @internal */
92
+ constructor(viewer: Viewer);
93
+ /**
94
+ * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
95
+ */
96
+ autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
97
+ /**
98
+ * Moves the active camera smoothly to certain position
99
+ *
100
+ * @param durationMs defaults to 250ms if unset, use 0 for instant movement
101
+ */
102
+ moveActiveCameraTo(position: CameraPosition, durationMs?: number): Promise<void>;
103
+ /**
104
+ * Takes a sceenshot the the current scene.\
105
+ * The result is a string containing a base64 encoded image.
106
+ */
107
+ createScreenshot(settings?: ScreenshotSettings): Promise<string>;
108
+ protected static _addCameraAnimationToGroup(targetProperty: string, from: number | Vector3, to: number | Vector3, framesPerSec: number, dataType: number, animationGroup: AnimationGroup, activeCamera: ArcRotateCamera): void;
109
+ protected _getAutofocusZoomingDistance(boundingSphere: BoundingSphere, camera: ArcRotateCamera): number;
110
+ }
@@ -11,6 +11,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CameraManager = void 0;
13
13
  const index_1 = require("../index");
14
+ const geometry_helper_1 = require("../internal/geometry-helper");
14
15
  /**
15
16
  * Manager for camera related tasks
16
17
  */
@@ -33,6 +34,7 @@ class CameraManager {
33
34
  const boundingInfo = this.viewer.calculateBoundingInfo(settings === null || settings === void 0 ? void 0 : settings.exclude);
34
35
  // optionally show bounding sphere for debugging purpose
35
36
  this.viewer.eventManager.fireEvent(index_1.ViewerEvent.AutofocusStart, boundingInfo.boundingSphere);
37
+ const distance = this._getAutofocusZoomingDistance(boundingInfo.boundingSphere, activeCamera);
36
38
  const radius = boundingInfo.boundingSphere.radius;
37
39
  const center = boundingInfo.boundingSphere.center;
38
40
  // set lower radius limit on edge of bounding sphere to make sure that we can't dive into the meshes
@@ -52,15 +54,6 @@ class CameraManager {
52
54
  const radiusFactor = (_a = settings === null || settings === void 0 ? void 0 : settings.radiusFactor) !== null && _a !== void 0 ? _a : CameraManager._DEFAULT_AUTOFOCUS_RADIUS_FACTOR;
53
55
  const alpha = (_b = settings === null || settings === void 0 ? void 0 : settings.alpha) !== null && _b !== void 0 ? _b : CameraManager.DEFAULT_CAMERA_POSITION.alpha;
54
56
  const beta = (_c = settings === null || settings === void 0 ? void 0 : settings.beta) !== null && _c !== void 0 ? _c : CameraManager.DEFAULT_CAMERA_POSITION.beta;
55
- // calculation is taken from Babylon.js repository, which on their side took it from this SO post:
56
- // http://stackoverflow.com/questions/2866350/move-camera-to-fit-3d-scene
57
- // there's a good sketch which explains the calculation quite a bit
58
- const aspectRatio = this.viewer.engine.getAspectRatio(activeCamera);
59
- const frustumSlopeY = Math.tan(activeCamera.fov / 2);
60
- const frustumSlopeX = frustumSlopeY * aspectRatio;
61
- const distanceForHorizontalFrustum = radius * Math.sqrt(1 + 1 / (frustumSlopeX * frustumSlopeX));
62
- const distanceForVerticalFrustum = radius * Math.sqrt(1 + 1 / (frustumSlopeY * frustumSlopeY));
63
- const distance = Math.max(distanceForHorizontalFrustum, distanceForVerticalFrustum);
64
57
  const newCameraPosition = {
65
58
  alpha: alpha,
66
59
  beta: beta,
@@ -119,6 +112,53 @@ class CameraManager {
119
112
  });
120
113
  });
121
114
  }
115
+ /**
116
+ * Takes a sceenshot the the current scene.\
117
+ * The result is a string containing a base64 encoded image.
118
+ */
119
+ createScreenshot(settings) {
120
+ var _a, _b;
121
+ return __awaiter(this, void 0, void 0, function* () {
122
+ const screenshotCam = (_a = this.viewer.scene.activeCamera) === null || _a === void 0 ? void 0 : _a.clone(CameraManager._SCREENSHOT_CAMERA_NAME);
123
+ const boundingInfo = (settings === null || settings === void 0 ? void 0 : settings.autofocusScene) ? this.viewer.calculateBoundingInfo(settings.exclude) : undefined;
124
+ if ((settings === null || settings === void 0 ? void 0 : settings.alpha) !== undefined) {
125
+ screenshotCam.alpha = settings.alpha;
126
+ }
127
+ if ((settings === null || settings === void 0 ? void 0 : settings.beta) !== undefined) {
128
+ screenshotCam.beta = settings.beta;
129
+ }
130
+ if ((settings === null || settings === void 0 ? void 0 : settings.radius) !== undefined) {
131
+ screenshotCam.radius = settings.radius;
132
+ }
133
+ else if (boundingInfo) {
134
+ // zoom out to have full scene in view if requested by `autofocusScene` flag
135
+ const distance = this._getAutofocusZoomingDistance(boundingInfo.boundingSphere, screenshotCam);
136
+ const radiusFactor = (_b = settings === null || settings === void 0 ? void 0 : settings.radiusFactor) !== null && _b !== void 0 ? _b : 1;
137
+ screenshotCam.radius = distance * radiusFactor;
138
+ }
139
+ // `cloneAlphaBetaRadius` has to be set to true, otherwise these values get adapted by setting the new target
140
+ // this would also be the case when setting `screenshotCam.target` directly
141
+ if ((settings === null || settings === void 0 ? void 0 : settings.target) !== undefined) {
142
+ screenshotCam.setTarget(settings.target, undefined, undefined, true);
143
+ }
144
+ else if (boundingInfo) {
145
+ screenshotCam.setTarget(boundingInfo.boundingSphere.center, undefined, undefined, true);
146
+ }
147
+ // don't expose internal props of `IScreenshotSize` in the API (yet), as it gets rather confusing and it shouldn't
148
+ // be necessary in the first place
149
+ // also let Babylon.js do all the fallback handling for missing properties
150
+ const size = { width: settings === null || settings === void 0 ? void 0 : settings.width, height: settings === null || settings === void 0 ? void 0 : settings.height };
151
+ // for some reason the `customizeTexture` property is not exposed in the async version of this function, therefore
152
+ // we create the promise here manually
153
+ const imageStr = yield new Promise(resolve => {
154
+ index_1.ScreenshotTools.CreateScreenshotUsingRenderTarget(this.viewer.engine, screenshotCam, size, (data) => resolve(data), settings === null || settings === void 0 ? void 0 : settings.mimeType, settings === null || settings === void 0 ? void 0 : settings.samples, settings === null || settings === void 0 ? void 0 : settings.antialiasing, settings === null || settings === void 0 ? void 0 : settings.fileName, settings === null || settings === void 0 ? void 0 : settings.renderSprites, settings === null || settings === void 0 ? void 0 : settings.enableStencilBuffer, settings === null || settings === void 0 ? void 0 : settings.useLayerMask, settings === null || settings === void 0 ? void 0 : settings.quality, texture => {
155
+ texture.renderList = this.viewer.scene.meshes.filter(mesh => !(settings === null || settings === void 0 ? void 0 : settings.exclude) || !(0, geometry_helper_1.isNodeExcluded)(mesh, settings.exclude));
156
+ });
157
+ });
158
+ screenshotCam.dispose();
159
+ return imageStr;
160
+ });
161
+ }
122
162
  static _addCameraAnimationToGroup(targetProperty, from, to, framesPerSec, dataType, animationGroup, activeCamera) {
123
163
  const alphaAnimation = new index_1.Animation(targetProperty, targetProperty, framesPerSec, dataType, index_1.Animation.ANIMATIONLOOPMODE_CONSTANT);
124
164
  alphaAnimation.setKeys([
@@ -133,6 +173,18 @@ class CameraManager {
133
173
  ]);
134
174
  animationGroup.addTargetedAnimation(alphaAnimation, activeCamera);
135
175
  }
176
+ _getAutofocusZoomingDistance(boundingSphere, camera) {
177
+ // calculation is taken from Babylon.js repository, which on their side took it from this SO post:
178
+ // http://stackoverflow.com/questions/2866350/move-camera-to-fit-3d-scene
179
+ // there's a good sketch which explains the calculation quite a bit
180
+ const aspectRatio = this.viewer.engine.getAspectRatio(camera);
181
+ const frustumSlopeY = Math.tan(camera.fov / 2);
182
+ const frustumSlopeX = frustumSlopeY * aspectRatio;
183
+ const distanceForHorizontalFrustum = boundingSphere.radius * Math.sqrt(1 + 1 / (frustumSlopeX * frustumSlopeX));
184
+ const distanceForVerticalFrustum = boundingSphere.radius * Math.sqrt(1 + 1 / (frustumSlopeY * frustumSlopeY));
185
+ const distance = Math.max(distanceForHorizontalFrustum, distanceForVerticalFrustum);
186
+ return distance;
187
+ }
136
188
  }
137
189
  exports.CameraManager = CameraManager;
138
190
  CameraManager.CAMERA_ANIMATION_NAME = '__cameraAnimation__';
@@ -151,4 +203,5 @@ CameraManager._AUTOFOCUS_CONSTANTS = {
151
203
  };
152
204
  CameraManager._DEFAULT_AUTOFOCUS_RADIUS_FACTOR = 1;
153
205
  CameraManager._DEFAULT_CAM_SPEED_MS = 250;
154
- //# sourceMappingURL=cameraManager.js.map
206
+ CameraManager._SCREENSHOT_CAMERA_NAME = '__screenshotCamera__';
207
+ //# sourceMappingURL=camera-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"camera-manager.js","sourceRoot":"","sources":["../../../src/manager/camera-manager.ts"],"names":[],"mappings":"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"}
@@ -215,4 +215,4 @@ DebugManager._DEBUG_AXIS_MAP = {
215
215
  };
216
216
  DebugManager._WORLD_COORD_ROOT_KEY = '__world_coordinates__';
217
217
  DebugManager._BOUNDING_SPHERE_KEY = '__bounding_sphere__';
218
- //# sourceMappingURL=debugManager.js.map
218
+ //# sourceMappingURL=debug-manager.js.map