@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.
- package/dist/lib-cjs/buildinfo.json +1 -1
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/index.d.ts +11 -12
- package/dist/lib-cjs/index.js +11 -12
- package/dist/lib-cjs/index.js.map +1 -1
- package/dist/lib-cjs/internal/{cbnCustomBabylonLoaderPlugin.js → cbn-custom-babylon-loader-plugin.js} +17 -9
- package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js.map +1 -0
- package/dist/lib-cjs/internal/{cloningHelper.js → cloning-helper.js} +15 -16
- package/dist/lib-cjs/internal/cloning-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{deviceHelper.js → device-helper.js} +1 -1
- package/dist/lib-cjs/internal/device-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{geometryHelper.js → geometry-helper.js} +5 -5
- package/dist/lib-cjs/internal/geometry-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{metadataHelper.js → metadata-helper.js} +1 -1
- package/dist/lib-cjs/internal/metadata-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{paintableHelper.js → paintable-helper.js} +1 -1
- package/dist/lib-cjs/internal/paintable-helper.js.map +1 -0
- package/dist/lib-cjs/internal/{tagsHelper.js → tags-helper.js} +1 -1
- package/dist/lib-cjs/internal/tags-helper.js.map +1 -0
- package/dist/lib-cjs/manager/camera-manager.d.ts +110 -0
- package/dist/lib-cjs/manager/{cameraManager.js → camera-manager.js} +63 -10
- package/dist/lib-cjs/manager/camera-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{debugManager.js → debug-manager.js} +1 -1
- package/dist/lib-cjs/manager/debug-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{eventManager.js → event-manager.js} +1 -1
- package/dist/lib-cjs/manager/event-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{gltfExportManager.js → gltf-export-manager.js} +25 -25
- package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{materialManager.js → material-manager.js} +6 -6
- package/dist/lib-cjs/manager/material-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{modelManager.js → model-manager.js} +8 -6
- package/dist/lib-cjs/manager/model-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{parameterManager.js → parameter-manager.js} +12 -12
- package/dist/lib-cjs/manager/parameter-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{sceneManager.js → scene-manager.js} +1 -1
- package/dist/lib-cjs/manager/scene-manager.js.map +1 -0
- package/dist/lib-cjs/manager/{textureManager.js → texture-manager.js} +1 -1
- package/dist/lib-cjs/manager/texture-manager.js.map +1 -0
- package/dist/lib-cjs/{viewerError.js → viewer-error.js} +1 -1
- package/dist/lib-cjs/viewer-error.js.map +1 -0
- package/dist/lib-cjs/viewer.d.ts +1 -3
- package/dist/lib-cjs/viewer.js +6 -10
- package/dist/lib-cjs/viewer.js.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +11 -12
- package/src/internal/{cbnCustomBabylonLoaderPlugin.ts → cbn-custom-babylon-loader-plugin.ts} +13 -3
- package/src/internal/{cloningHelper.ts → cloning-helper.ts} +3 -3
- package/src/internal/{geometryHelper.ts → geometry-helper.ts} +2 -2
- package/src/manager/{cameraManager.ts → camera-manager.ts} +140 -11
- package/src/manager/{gltfExportManager.ts → gltf-export-manager.ts} +4 -4
- package/src/manager/{materialManager.ts → material-manager.ts} +1 -1
- package/src/manager/{modelManager.ts → model-manager.ts} +5 -3
- package/src/manager/{parameterManager.ts → parameter-manager.ts} +3 -3
- package/src/viewer.ts +3 -9
- package/dist/lib-cjs/internal/cbnCustomBabylonLoaderPlugin.js.map +0 -1
- package/dist/lib-cjs/internal/cloningHelper.js.map +0 -1
- package/dist/lib-cjs/internal/deviceHelper.js.map +0 -1
- package/dist/lib-cjs/internal/geometryHelper.js.map +0 -1
- package/dist/lib-cjs/internal/metadataHelper.js.map +0 -1
- package/dist/lib-cjs/internal/paintableHelper.js.map +0 -1
- package/dist/lib-cjs/internal/tagsHelper.js.map +0 -1
- package/dist/lib-cjs/manager/cameraManager.d.ts +0 -51
- package/dist/lib-cjs/manager/cameraManager.js.map +0 -1
- package/dist/lib-cjs/manager/debugManager.js.map +0 -1
- package/dist/lib-cjs/manager/eventManager.js.map +0 -1
- package/dist/lib-cjs/manager/gltfExportManager.js.map +0 -1
- package/dist/lib-cjs/manager/materialManager.js.map +0 -1
- package/dist/lib-cjs/manager/modelManager.js.map +0 -1
- package/dist/lib-cjs/manager/parameterManager.js.map +0 -1
- package/dist/lib-cjs/manager/sceneManager.js.map +0 -1
- package/dist/lib-cjs/manager/screenshotManager.d.ts +0 -36
- package/dist/lib-cjs/manager/screenshotManager.js +0 -40
- package/dist/lib-cjs/manager/screenshotManager.js.map +0 -1
- package/dist/lib-cjs/manager/textureManager.js.map +0 -1
- package/dist/lib-cjs/viewerError.js.map +0 -1
- package/src/manager/screenshotManager.ts +0 -59
- /package/dist/lib-cjs/internal/{cbnCustomBabylonLoaderPlugin.d.ts → cbn-custom-babylon-loader-plugin.d.ts} +0 -0
- /package/dist/lib-cjs/internal/{cloningHelper.d.ts → cloning-helper.d.ts} +0 -0
- /package/dist/lib-cjs/internal/{deviceHelper.d.ts → device-helper.d.ts} +0 -0
- /package/dist/lib-cjs/internal/{geometryHelper.d.ts → geometry-helper.d.ts} +0 -0
- /package/dist/lib-cjs/internal/{metadataHelper.d.ts → metadata-helper.d.ts} +0 -0
- /package/dist/lib-cjs/internal/{paintableHelper.d.ts → paintable-helper.d.ts} +0 -0
- /package/dist/lib-cjs/internal/{tagsHelper.d.ts → tags-helper.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{debugManager.d.ts → debug-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{eventManager.d.ts → event-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{gltfExportManager.d.ts → gltf-export-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{materialManager.d.ts → material-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{modelManager.d.ts → model-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{parameterManager.d.ts → parameter-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{sceneManager.d.ts → scene-manager.d.ts} +0 -0
- /package/dist/lib-cjs/manager/{textureManager.d.ts → texture-manager.d.ts} +0 -0
- /package/dist/lib-cjs/{viewerError.d.ts → viewer-error.d.ts} +0 -0
- /package/src/{globalTypes.d.ts → global-types.d.ts} +0 -0
- /package/src/internal/{deviceHelper.ts → device-helper.ts} +0 -0
- /package/src/internal/{metadataHelper.ts → metadata-helper.ts} +0 -0
- /package/src/internal/{paintableHelper.ts → paintable-helper.ts} +0 -0
- /package/src/internal/{tagsHelper.ts → tags-helper.ts} +0 -0
- /package/src/manager/{debugManager.ts → debug-manager.ts} +0 -0
- /package/src/manager/{eventManager.ts → event-manager.ts} +0 -0
- /package/src/manager/{sceneManager.ts → scene-manager.ts} +0 -0
- /package/src/manager/{textureManager.ts → texture-manager.ts} +0 -0
- /package/src/{viewerError.ts → viewer-error.ts} +0 -0
package/dist/lib-cjs/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/// <reference path="../../src/
|
|
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 './
|
|
54
|
-
export * from './manager/
|
|
55
|
-
export * from './manager/
|
|
56
|
-
export * from './manager/
|
|
57
|
-
export * from './manager/
|
|
58
|
-
export * from './manager/
|
|
59
|
-
export * from './manager/
|
|
60
|
-
export * from './manager/
|
|
61
|
-
export * from './manager/
|
|
62
|
-
export * from './manager/
|
|
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';
|
package/dist/lib-cjs/index.js
CHANGED
|
@@ -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="
|
|
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("./
|
|
86
|
-
__exportStar(require("./manager/
|
|
87
|
-
__exportStar(require("./manager/
|
|
88
|
-
__exportStar(require("./manager/
|
|
89
|
-
__exportStar(require("./manager/
|
|
90
|
-
__exportStar(require("./manager/
|
|
91
|
-
__exportStar(require("./manager/
|
|
92
|
-
__exportStar(require("./manager/
|
|
93
|
-
__exportStar(require("./manager/
|
|
94
|
-
__exportStar(require("./manager/
|
|
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,
|
|
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
|
|
6
|
-
const
|
|
7
|
-
const
|
|
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,
|
|
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,
|
|
103
|
+
const hasTags = (0, tags_helper_1.getTags)(importedMesh);
|
|
96
104
|
if (hasTags) {
|
|
97
|
-
(0,
|
|
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,
|
|
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,
|
|
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=
|
|
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
|
|
6
|
-
const
|
|
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
|
-
|
|
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,
|
|
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,
|
|
92
|
-
(0,
|
|
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,
|
|
95
|
+
const sourceTags = (0, tags_helper_1.getTags)(node);
|
|
97
96
|
const mappedTags = sourceTags.map(tag => tagNamingStrategy(tag, newModelName));
|
|
98
|
-
(0,
|
|
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,
|
|
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,
|
|
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,
|
|
149
|
-
(0,
|
|
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,
|
|
160
|
-
(0,
|
|
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=
|
|
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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"}
|
|
@@ -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
|
|
6
|
-
const
|
|
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,
|
|
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,
|
|
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=
|
|
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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"}
|
|
@@ -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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paintable-helper.js","sourceRoot":"","sources":["../../../src/internal/paintable-helper.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
-
|
|
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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"}
|