@combeenation/3d-viewer 14.0.1-rc1 → 15.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 (81) hide show
  1. package/README.md +9 -9
  2. package/dist/lib-cjs/buildinfo.json +3 -3
  3. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  4. package/dist/lib-cjs/index.d.ts +51 -62
  5. package/dist/lib-cjs/index.js +84 -94
  6. package/dist/lib-cjs/index.js.map +1 -1
  7. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.d.ts +10 -10
  8. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js +131 -131
  9. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js.map +1 -1
  10. package/dist/lib-cjs/internal/cloning-helper.d.ts +19 -19
  11. package/dist/lib-cjs/internal/cloning-helper.js +163 -163
  12. package/dist/lib-cjs/internal/device-helper.d.ts +9 -9
  13. package/dist/lib-cjs/internal/device-helper.js +24 -24
  14. package/dist/lib-cjs/internal/geometry-helper.d.ts +21 -21
  15. package/dist/lib-cjs/internal/geometry-helper.js +145 -145
  16. package/dist/lib-cjs/internal/metadata-helper.d.ts +26 -26
  17. package/dist/lib-cjs/internal/metadata-helper.js +50 -50
  18. package/dist/lib-cjs/internal/paintable-helper.d.ts +40 -40
  19. package/dist/lib-cjs/internal/paintable-helper.js +234 -286
  20. package/dist/lib-cjs/internal/paintable-helper.js.map +1 -1
  21. package/dist/lib-cjs/internal/svg-helper.d.ts +4 -0
  22. package/dist/lib-cjs/internal/svg-helper.js +67 -0
  23. package/dist/lib-cjs/internal/svg-helper.js.map +1 -0
  24. package/dist/lib-cjs/internal/tags-helper.d.ts +12 -12
  25. package/dist/lib-cjs/internal/tags-helper.js +39 -37
  26. package/dist/lib-cjs/internal/tags-helper.js.map +1 -1
  27. package/dist/lib-cjs/internal/texture-parameter-helper.d.ts +37 -0
  28. package/dist/lib-cjs/internal/texture-parameter-helper.js +287 -0
  29. package/dist/lib-cjs/internal/texture-parameter-helper.js.map +1 -0
  30. package/dist/lib-cjs/manager/camera-manager.d.ts +110 -110
  31. package/dist/lib-cjs/manager/camera-manager.js +209 -206
  32. package/dist/lib-cjs/manager/camera-manager.js.map +1 -1
  33. package/dist/lib-cjs/manager/debug-manager.d.ts +60 -60
  34. package/dist/lib-cjs/manager/debug-manager.js +217 -217
  35. package/dist/lib-cjs/manager/event-manager.d.ts +52 -52
  36. package/dist/lib-cjs/manager/event-manager.js +71 -71
  37. package/dist/lib-cjs/manager/gltf-export-manager.d.ts +75 -84
  38. package/dist/lib-cjs/manager/gltf-export-manager.js +286 -290
  39. package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -1
  40. package/dist/lib-cjs/manager/material-manager.d.ts +35 -35
  41. package/dist/lib-cjs/manager/material-manager.js +125 -125
  42. package/dist/lib-cjs/manager/model-manager.d.ts +145 -145
  43. package/dist/lib-cjs/manager/model-manager.js +382 -382
  44. package/dist/lib-cjs/manager/parameter-manager.d.ts +228 -210
  45. package/dist/lib-cjs/manager/parameter-manager.js +573 -514
  46. package/dist/lib-cjs/manager/parameter-manager.js.map +1 -1
  47. package/dist/lib-cjs/manager/scene-manager.d.ts +45 -45
  48. package/dist/lib-cjs/manager/scene-manager.js +64 -64
  49. package/dist/lib-cjs/manager/texture-manager.d.ts +12 -12
  50. package/dist/lib-cjs/manager/texture-manager.js +43 -43
  51. package/dist/lib-cjs/viewer-error.d.ts +49 -48
  52. package/dist/lib-cjs/viewer-error.js +61 -60
  53. package/dist/lib-cjs/viewer-error.js.map +1 -1
  54. package/dist/lib-cjs/viewer.d.ts +115 -115
  55. package/dist/lib-cjs/viewer.js +217 -217
  56. package/dist/lib-cjs/viewer.js.map +1 -1
  57. package/package.json +94 -91
  58. package/src/buildinfo.json +3 -3
  59. package/src/dev.ts +47 -47
  60. package/src/global-types.d.ts +39 -39
  61. package/src/index.ts +71 -81
  62. package/src/internal/cbn-custom-babylon-loader-plugin.ts +159 -159
  63. package/src/internal/cloning-helper.ts +225 -225
  64. package/src/internal/device-helper.ts +25 -25
  65. package/src/internal/geometry-helper.ts +181 -181
  66. package/src/internal/metadata-helper.ts +63 -63
  67. package/src/internal/paintable-helper.ts +258 -310
  68. package/src/internal/svg-helper.ts +52 -0
  69. package/src/internal/tags-helper.ts +43 -41
  70. package/src/internal/texture-parameter-helper.ts +353 -0
  71. package/src/manager/camera-manager.ts +368 -365
  72. package/src/manager/debug-manager.ts +245 -245
  73. package/src/manager/event-manager.ts +72 -72
  74. package/src/manager/gltf-export-manager.ts +356 -357
  75. package/src/manager/material-manager.ts +135 -135
  76. package/src/manager/model-manager.ts +458 -458
  77. package/src/manager/parameter-manager.ts +730 -652
  78. package/src/manager/scene-manager.ts +101 -101
  79. package/src/manager/texture-manager.ts +32 -32
  80. package/src/viewer-error.ts +69 -68
  81. package/src/viewer.ts +290 -290
@@ -1,218 +1,218 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.Viewer = void 0;
30
- const buildinfo_json_1 = __importDefault(require("./buildinfo.json"));
31
- const Index = __importStar(require("./index"));
32
- const index_1 = require("./index");
33
- const cbn_custom_babylon_loader_plugin_1 = require("./internal/cbn-custom-babylon-loader-plugin");
34
- const device_helper_1 = require("./internal/device-helper");
35
- const geometry_helper_1 = require("./internal/geometry-helper");
36
- const lodash_es_1 = require("lodash-es");
37
- /**
38
- * This is the entry point into the application.\
39
- * Create an instance to set up the viewer on your canvas.
40
- * ```js
41
- * const canvas = document.getElementById('babylon-canvas');
42
- * const viewer = Viewer(canvas, viewerSettings, defaultSceneSettings);
43
- * ```
44
- * Use "manager" sub classes for interacting with the Babylon.js engine.
45
- * (e.g. `modelManager` for loading models into the scene)
46
- */
47
- class Viewer {
48
- /**
49
- * @param viewerSettings Can be overwritten to tweak settings for the Babylon.js engine or viewer internal
50
- * functionalities like "texture downscaling mode"
51
- * @param defaultSceneSettings Can be overwritten to tweak settings for the automatically create Babylon.js scene.\
52
- * This scene contains a camera and an environment per default.
53
- */
54
- constructor(canvas, viewerSettings, defaultSceneSettings) {
55
- this.canvas = canvas;
56
- // default viewer settings
57
- // will be overwritten in the viewer constructor
58
- this._viewerSettings = {
59
- antialiasing: true,
60
- engineOptions: {
61
- preserveDrawingBuffer: true,
62
- stencil: true,
63
- xrCompatible: false,
64
- },
65
- adaptToDeviceRatio: true,
66
- limitTextureSize: {
67
- devices: 'iPhone',
68
- size: 1024,
69
- },
70
- useParallelShaderCompile: true,
71
- };
72
- this._isRenderLoopPaused = false;
73
- (0, lodash_es_1.merge)(this._viewerSettings, viewerSettings);
74
- this._init(defaultSceneSettings);
75
- }
76
- get scene() {
77
- return this._scene;
78
- }
79
- get engine() {
80
- return this.scene.getEngine();
81
- }
82
- get cameraManager() {
83
- return this._cameraManager;
84
- }
85
- get debugManager() {
86
- return this._debugManager;
87
- }
88
- get eventManager() {
89
- return this._eventManager;
90
- }
91
- get gltfExportManager() {
92
- return this._gltfExportManager;
93
- }
94
- get materialManager() {
95
- return this._materialManager;
96
- }
97
- get modelManager() {
98
- return this._modelManager;
99
- }
100
- get parameterManager() {
101
- return this._parameterManager;
102
- }
103
- /** @internal */
104
- get sceneManager() {
105
- return this._sceneManager;
106
- }
107
- /** @internal */
108
- get textureManager() {
109
- return this._textureManager;
110
- }
111
- get viewerSettings() {
112
- return this._viewerSettings;
113
- }
114
- /**
115
- * Returns all modules which are exported by the viewers index file.\
116
- * Needed by the [Combeenation viewer control](https://docs.combeenation.com/docs/3d-viewer-control) in situations where the viewer is injected from external code.\
117
- * See [Combeenation docs](https://docs.combeenation.com/docs/3d-viewer-control-with-custom-js) for more details.
118
- */
119
- static getAllViewerModules() {
120
- return Index;
121
- }
122
- /**
123
- * Pause rendering can be usefull when doing internal scene processings that should not be visible to the user,
124
- * e.g. cloning meshes for gltf export
125
- */
126
- pauseRendering() {
127
- this._isRenderLoopPaused = true;
128
- }
129
- /**
130
- * Resume render loop when paused by {@link pauseRendering} function
131
- */
132
- resumeRendering() {
133
- this._isRenderLoopPaused = false;
134
- }
135
- /**
136
- * Destroys this viewer instance and disposes Babylon.js engine and all scene content
137
- */
138
- destroy() {
139
- this.eventManager.removeAllListeners();
140
- this.engine.dispose();
141
- }
142
- /**
143
- * Calculates size of the current scene.\
144
- * Only takes meshes into considerations that:
145
- * - are visible
146
- * - are not excluded by "excludeGeometry" parameter
147
- * - do not have an infinite distance (like sky boxes)
148
- */
149
- calculateBoundingInfo(excludeGeometry) {
150
- // CB-6062: workaround for BoundingBox not respecting render loop
151
- this.scene.render();
152
- const { max, min } = this.scene.meshes
153
- .filter(mesh => {
154
- const isEnabled = mesh.isEnabled();
155
- // ignore meshes with invalid bounding infos
156
- const hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
157
- // ignore meshes with infinite distance, typically these are sky boxes
158
- const hasInfiniteDistance = mesh.infiniteDistance;
159
- // ignore excluded meshes
160
- const isExcluded = excludeGeometry ? (0, geometry_helper_1.isNodeExcluded)(mesh, excludeGeometry) : false;
161
- return isEnabled && hasValidBBoxInfo && !hasInfiniteDistance && !isExcluded;
162
- })
163
- .reduce((accBBoxMinMax, curMesh, idx) => {
164
- curMesh.refreshBoundingInfo(true, true);
165
- const bBox = curMesh.getBoundingInfo().boundingBox;
166
- // use the first entry in the array as default value and get the resulting maximum/minimum values
167
- const max = idx === 0 ? bBox.maximumWorld : index_1.Vector3.Maximize(accBBoxMinMax.max, bBox.maximumWorld);
168
- const min = idx === 0 ? bBox.minimumWorld : index_1.Vector3.Minimize(accBBoxMinMax.min, bBox.minimumWorld);
169
- return { max, min };
170
- }, { max: new index_1.Vector3(), min: new index_1.Vector3() });
171
- const boundingInfo = new index_1.BoundingInfo(min, max);
172
- return boundingInfo;
173
- }
174
- /**
175
- * Set up viewer (engine and scene) and initialize all managers
176
- */
177
- _init(defaultSceneSettings) {
178
- // we use a custom plugin for ".babylon" files to be able to lazy load materials that were cropped by the CBN
179
- // asset manager
180
- (0, cbn_custom_babylon_loader_plugin_1.registerCustomCbnBabylonLoaderPlugin)();
181
- const engine = new index_1.Engine(this.canvas, this._viewerSettings.antialiasing, (0, lodash_es_1.cloneDeep)(this._viewerSettings.engineOptions), this._viewerSettings.adaptToDeviceRatio);
182
- const isScaledDownDevice = (0, device_helper_1.getIsScaledDownDevice)(this._viewerSettings.limitTextureSize);
183
- if (this._viewerSettings.limitTextureSize && isScaledDownDevice) {
184
- engine.getCaps().maxTextureSize = this._viewerSettings.limitTextureSize.size;
185
- }
186
- if (this._viewerSettings.useParallelShaderCompile === false) {
187
- engine.getCaps().parallelShaderCompile = undefined;
188
- }
189
- this._scene = new index_1.Scene(engine);
190
- // NOTE: order of manage seems to be a bit counter intuitive as it's sorted alphabetically
191
- // semantically one would start with scene manager, etc...
192
- // still this is a good test as the order of manager constructors should not matter
193
- this._cameraManager = new index_1.CameraManager(this);
194
- this._debugManager = new index_1.DebugManager(this);
195
- this._eventManager = new index_1.EventManager(this);
196
- this._gltfExportManager = new index_1.GltfExportManager(this);
197
- this._materialManager = new index_1.MaterialManager(this);
198
- this._modelManager = new index_1.ModelManager(this);
199
- this._parameterManager = new index_1.ParameterManager(this);
200
- this._sceneManager = new index_1.SceneManager(this, defaultSceneSettings);
201
- this._textureManager = new index_1.TextureManager(this);
202
- // creates black cube
203
- // this model is not based on an URL and can be targeted by the Combeenation backend as fallback model
204
- this._modelManager.createFallbackModel();
205
- // NOTE: ATM creating the default scene required, as otherwise no camera would be available and the first render
206
- // call would already throw
207
- this._sceneManager.applyDefaultSettingsToScene();
208
- this._debugManager.registerAutofocusStartListener();
209
- engine.runRenderLoop(() => {
210
- if (!this._isRenderLoopPaused) {
211
- this.scene.render();
212
- }
213
- });
214
- }
215
- }
216
- exports.Viewer = Viewer;
217
- Viewer.version = buildinfo_json_1.default.version;
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Viewer = void 0;
30
+ const buildinfo_json_1 = __importDefault(require("./buildinfo.json"));
31
+ const Index = __importStar(require("./index"));
32
+ const index_1 = require("./index");
33
+ const cbn_custom_babylon_loader_plugin_1 = require("./internal/cbn-custom-babylon-loader-plugin");
34
+ const device_helper_1 = require("./internal/device-helper");
35
+ const geometry_helper_1 = require("./internal/geometry-helper");
36
+ const lodash_es_1 = require("lodash-es");
37
+ /**
38
+ * This is the entry point into the application.\
39
+ * Create an instance to set up the viewer on your canvas.
40
+ * ```js
41
+ * const canvas = document.getElementById('babylon-canvas');
42
+ * const viewer = Viewer(canvas, viewerSettings, defaultSceneSettings);
43
+ * ```
44
+ * Use "manager" sub classes for interacting with the Babylon.js engine.
45
+ * (e.g. `modelManager` for loading models into the scene)
46
+ */
47
+ class Viewer {
48
+ /**
49
+ * @param viewerSettings Can be overwritten to tweak settings for the Babylon.js engine or viewer internal
50
+ * functionalities like "texture downscaling mode"
51
+ * @param defaultSceneSettings Can be overwritten to tweak settings for the automatically create Babylon.js scene.\
52
+ * This scene contains a camera and an environment per default.
53
+ */
54
+ constructor(canvas, viewerSettings, defaultSceneSettings) {
55
+ this.canvas = canvas;
56
+ // default viewer settings
57
+ // will be overwritten in the viewer constructor
58
+ this._viewerSettings = {
59
+ antialiasing: true,
60
+ engineOptions: {
61
+ preserveDrawingBuffer: true,
62
+ stencil: true,
63
+ xrCompatible: false,
64
+ },
65
+ adaptToDeviceRatio: true,
66
+ limitTextureSize: {
67
+ devices: 'iPhone',
68
+ size: 1024,
69
+ },
70
+ useParallelShaderCompile: true,
71
+ };
72
+ this._isRenderLoopPaused = false;
73
+ (0, lodash_es_1.merge)(this._viewerSettings, viewerSettings);
74
+ this._init(defaultSceneSettings);
75
+ }
76
+ get scene() {
77
+ return this._scene;
78
+ }
79
+ get engine() {
80
+ return this.scene.getEngine();
81
+ }
82
+ get cameraManager() {
83
+ return this._cameraManager;
84
+ }
85
+ get debugManager() {
86
+ return this._debugManager;
87
+ }
88
+ get eventManager() {
89
+ return this._eventManager;
90
+ }
91
+ get gltfExportManager() {
92
+ return this._gltfExportManager;
93
+ }
94
+ get materialManager() {
95
+ return this._materialManager;
96
+ }
97
+ get modelManager() {
98
+ return this._modelManager;
99
+ }
100
+ get parameterManager() {
101
+ return this._parameterManager;
102
+ }
103
+ /** @internal */
104
+ get sceneManager() {
105
+ return this._sceneManager;
106
+ }
107
+ /** @internal */
108
+ get textureManager() {
109
+ return this._textureManager;
110
+ }
111
+ get viewerSettings() {
112
+ return this._viewerSettings;
113
+ }
114
+ /**
115
+ * Returns all modules which are exported by the viewers index file.\
116
+ * Needed by the [Combeenation viewer control](https://docs.combeenation.com/docs/3d-viewer-control) in situations where the viewer is injected from external code.\
117
+ * See [Combeenation docs](https://docs.combeenation.com/docs/3d-viewer-control-with-custom-js) for more details.
118
+ */
119
+ static getAllViewerModules() {
120
+ return Index;
121
+ }
122
+ /**
123
+ * Pause rendering can be usefull when doing internal scene processings that should not be visible to the user,
124
+ * e.g. cloning meshes for gltf export
125
+ */
126
+ pauseRendering() {
127
+ this._isRenderLoopPaused = true;
128
+ }
129
+ /**
130
+ * Resume render loop when paused by {@link pauseRendering} function
131
+ */
132
+ resumeRendering() {
133
+ this._isRenderLoopPaused = false;
134
+ }
135
+ /**
136
+ * Destroys this viewer instance and disposes Babylon.js engine and all scene content
137
+ */
138
+ destroy() {
139
+ this.eventManager.removeAllListeners();
140
+ this.engine.dispose();
141
+ }
142
+ /**
143
+ * Calculates size of the current scene.\
144
+ * Only takes meshes into considerations that:
145
+ * - are visible
146
+ * - are not excluded by "excludeGeometry" parameter
147
+ * - do not have an infinite distance (like sky boxes)
148
+ */
149
+ calculateBoundingInfo(excludeGeometry) {
150
+ // CB-6062: workaround for BoundingBox not respecting render loop
151
+ this.scene.render();
152
+ const { max, min } = this.scene.meshes
153
+ .filter(mesh => {
154
+ const isEnabled = mesh.isEnabled();
155
+ // ignore meshes with invalid bounding infos
156
+ const hasValidBBoxInfo = mesh.getBoundingInfo().boundingSphere.radius > 0;
157
+ // ignore meshes with infinite distance, typically these are sky boxes
158
+ const hasInfiniteDistance = mesh.infiniteDistance;
159
+ // ignore excluded meshes
160
+ const isExcluded = excludeGeometry ? (0, geometry_helper_1.isNodeExcluded)(mesh, excludeGeometry) : false;
161
+ return isEnabled && hasValidBBoxInfo && !hasInfiniteDistance && !isExcluded;
162
+ })
163
+ .reduce((accBBoxMinMax, curMesh, idx) => {
164
+ curMesh.refreshBoundingInfo(true, true);
165
+ const bBox = curMesh.getBoundingInfo().boundingBox;
166
+ // use the first entry in the array as default value and get the resulting maximum/minimum values
167
+ const max = idx === 0 ? bBox.maximumWorld : index_1.Vector3.Maximize(accBBoxMinMax.max, bBox.maximumWorld);
168
+ const min = idx === 0 ? bBox.minimumWorld : index_1.Vector3.Minimize(accBBoxMinMax.min, bBox.minimumWorld);
169
+ return { max, min };
170
+ }, { max: new index_1.Vector3(), min: new index_1.Vector3() });
171
+ const boundingInfo = new index_1.BoundingInfo(min, max);
172
+ return boundingInfo;
173
+ }
174
+ /**
175
+ * Set up viewer (engine and scene) and initialize all managers
176
+ */
177
+ _init(defaultSceneSettings) {
178
+ // we use a custom plugin for ".babylon" files to be able to lazy load materials that were cropped by the CBN
179
+ // asset manager
180
+ (0, cbn_custom_babylon_loader_plugin_1.registerCustomCbnBabylonLoaderPlugin)();
181
+ const engine = new index_1.Engine(this.canvas, this._viewerSettings.antialiasing, (0, lodash_es_1.cloneDeep)(this._viewerSettings.engineOptions), this._viewerSettings.adaptToDeviceRatio);
182
+ const isScaledDownDevice = (0, device_helper_1.getIsScaledDownDevice)(this._viewerSettings.limitTextureSize);
183
+ if (this._viewerSettings.limitTextureSize && isScaledDownDevice) {
184
+ engine.getCaps().maxTextureSize = this._viewerSettings.limitTextureSize.size;
185
+ }
186
+ if (this._viewerSettings.useParallelShaderCompile === false) {
187
+ engine.getCaps().parallelShaderCompile = undefined;
188
+ }
189
+ this._scene = new index_1.Scene(engine);
190
+ // NOTE: order of manage seems to be a bit counter intuitive as it's sorted alphabetically
191
+ // semantically one would start with scene manager, etc...
192
+ // still this is a good test as the order of manager constructors should not matter
193
+ this._cameraManager = new index_1.CameraManager(this);
194
+ this._debugManager = new index_1.DebugManager(this);
195
+ this._eventManager = new index_1.EventManager(this);
196
+ this._gltfExportManager = new index_1.GltfExportManager(this);
197
+ this._materialManager = new index_1.MaterialManager(this);
198
+ this._modelManager = new index_1.ModelManager(this);
199
+ this._parameterManager = new index_1.ParameterManager(this);
200
+ this._sceneManager = new index_1.SceneManager(this, defaultSceneSettings);
201
+ this._textureManager = new index_1.TextureManager(this);
202
+ // creates black cube
203
+ // this model is not based on an URL and can be targeted by the Combeenation backend as fallback model
204
+ this._modelManager.createFallbackModel();
205
+ // NOTE: ATM creating the default scene required, as otherwise no camera would be available and the first render
206
+ // call would already throw
207
+ this._sceneManager.applyDefaultSettingsToScene();
208
+ this._debugManager.registerAutofocusStartListener();
209
+ engine.runRenderLoop(() => {
210
+ if (!this._isRenderLoopPaused) {
211
+ this.scene.render();
212
+ }
213
+ });
214
+ }
215
+ }
216
+ exports.Viewer = Viewer;
217
+ Viewer.version = buildinfo_json_1.default.version;
218
218
  //# sourceMappingURL=viewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/viewer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sEAAyC;AACzC,+CAAiC;AACjC,mCAkBiB;AACjB,kGAAmG;AACnG,4DAAiE;AACjE,gEAA4D;AAC5D,yCAA6C;AAwC7C;;;;;;;;;GASG;AACH,MAAa,MAAM;IAoFjB;;;;;OAKG;IACH,YACkB,MAAyB,EACzC,cAA4C,EAC5C,oBAAwD;QAFxC,WAAM,GAAN,MAAM,CAAmB;QA1E3C,0BAA0B;QAC1B,gDAAgD;QACtC,oBAAe,GAAmB;YAC1C,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE;gBACb,qBAAqB,EAAE,IAAI;gBAC3B,OAAO,EAAE,IAAI;gBACb,YAAY,EAAE,KAAK;aACpB;YACD,kBAAkB,EAAE,IAAI;YACxB,gBAAgB,EAAE;gBAChB,OAAO,EAAE,QAAQ;gBACjB,IAAI,EAAE,IAAI;aACX;YACD,wBAAwB,EAAE,IAAI;SAC/B,CAAC;QAEQ,wBAAmB,GAAY,KAAK,CAAC;QA6D7C,IAAA,iBAAK,EAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,CAAC;QAC5C,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACnC,CAAC;IA7DD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAY,CAAC;IAC1C,CAAC;IACD,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IACD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IACD,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IACD,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IACD,gBAAgB;IAChB,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IACD,gBAAgB;IAChB,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IACD,IAAI,cAAc;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,mBAAmB;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAiBD;;;OAGG;IACI,cAAc;QACnB,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;OAEG;IACI,eAAe;QACpB,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;IACnC,CAAC;IAED;;OAEG;IACI,OAAO;QACZ,IAAI,CAAC,YAAY,CAAC,kBAAkB,EAAE,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC;IAED;;;;;;OAMG;IACI,qBAAqB,CAAC,eAAsC;QACjE,iEAAiE;QACjE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAEpB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM;aACnC,MAAM,CAAC,IAAI,CAAC,EAAE;YACb,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACnC,4CAA4C;YAC5C,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;YAC1E,sEAAsE;YACtE,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,CAAC;YAClD,yBAAyB;YACzB,MAAM,UAAU,GAAG,eAAe,CAAC,CAAC,CAAC,IAAA,gCAAc,EAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YACnF,OAAO,SAAS,IAAI,gBAAgB,IAAI,CAAC,mBAAmB,IAAI,CAAC,UAAU,CAAC;QAC9E,CAAC,CAAC;aACD,MAAM,CACL,CAAC,aAAa,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE;YAC9B,OAAO,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YACxC,MAAM,IAAI,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,WAAW,CAAC;YACnD,iGAAiG;YACjG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,eAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnG,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,eAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YACnG,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QACtB,CAAC,EACD,EAAE,GAAG,EAAE,IAAI,eAAO,EAAE,EAAE,GAAG,EAAE,IAAI,eAAO,EAAE,EAAE,CAC3C,CAAC;QAEJ,MAAM,YAAY,GAAG,IAAI,oBAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,oBAAwD;QACtE,6GAA6G;QAC7G,gBAAgB;QAChB,IAAA,uEAAoC,GAAE,CAAC;QAEvC,MAAM,MAAM,GAAG,IAAI,cAAM,CACvB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,eAAe,CAAC,YAAY,EACjC,IAAA,qBAAS,EAAC,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,EAC7C,IAAI,CAAC,eAAe,CAAC,kBAAkB,CACxC,CAAC;QAEF,MAAM,kBAAkB,GAAG,IAAA,qCAAqB,EAAC,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC;QACxF,IAAI,IAAI,CAAC,eAAe,CAAC,gBAAgB,IAAI,kBAAkB,EAAE;YAC/D,MAAM,CAAC,OAAO,EAAE,CAAC,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,IAAI,CAAC;SAC9E;QAED,IAAI,IAAI,CAAC,eAAe,CAAC,wBAAwB,KAAK,KAAK,EAAE;YAC3D,MAAM,CAAC,OAAO,EAAE,CAAC,qBAAqB,GAAG,SAAS,CAAC;SACpD;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,aAAK,CAAC,MAAM,CAAC,CAAC;QAEhC,0FAA0F;QAC1F,0DAA0D;QAC1D,mFAAmF;QACnF,IAAI,CAAC,cAAc,GAAG,IAAI,qBAAa,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,kBAAkB,GAAG,IAAI,yBAAiB,CAAC,IAAI,CAAC,CAAC;QACtD,IAAI,CAAC,gBAAgB,GAAG,IAAI,uBAAe,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,wBAAgB,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,IAAI,oBAAY,CAAC,IAAI,EAAE,oBAAoB,CAAC,CAAC;QAClE,IAAI,CAAC,eAAe,GAAG,IAAI,sBAAc,CAAC,IAAI,CAAC,CAAC;QAEhD,qBAAqB;QACrB,sGAAsG;QACtG,IAAI,CAAC,aAAa,CAAC,mBAAmB,EAAE,CAAC;QAEzC,gHAAgH;QAChH,2BAA2B;QAC3B,IAAI,CAAC,aAAa,CAAC,2BAA2B,EAAE,CAAC;QAEjD,IAAI,CAAC,aAAa,CAAC,8BAA8B,EAAE,CAAC;QAEpD,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE;YACxB,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;gBAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;aACrB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;;AAtNH,wBAuNC;AAtNiB,cAAO,GAAG,wBAAS,CAAC,OAAO,CAAC"}