@combeenation/3d-viewer 9.3.0 → 10.0.0-alpha3

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 (111) hide show
  1. package/README.md +9 -111
  2. package/dist/lib-cjs/api/classes/animationInterface.d.ts +8 -8
  3. package/dist/lib-cjs/api/classes/animationInterface.js +2 -2
  4. package/dist/lib-cjs/api/classes/dottedPath.d.ts +79 -79
  5. package/dist/lib-cjs/api/classes/dottedPath.js +166 -166
  6. package/dist/lib-cjs/api/classes/element.d.ts +153 -153
  7. package/dist/lib-cjs/api/classes/element.js +666 -667
  8. package/dist/lib-cjs/api/classes/element.js.map +1 -1
  9. package/dist/lib-cjs/api/classes/event.d.ts +401 -401
  10. package/dist/lib-cjs/api/classes/event.js +424 -424
  11. package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +26 -26
  12. package/dist/lib-cjs/api/classes/eventBroadcaster.js +49 -49
  13. package/dist/lib-cjs/api/classes/fuzzyMap.d.ts +7 -7
  14. package/dist/lib-cjs/api/classes/fuzzyMap.js +21 -21
  15. package/dist/lib-cjs/api/classes/parameter.d.ts +410 -410
  16. package/dist/lib-cjs/api/classes/parameter.js +642 -642
  17. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
  18. package/dist/lib-cjs/api/classes/parameterObservable.js +72 -72
  19. package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -15
  20. package/dist/lib-cjs/api/classes/parameterizable.js +102 -102
  21. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +45 -45
  22. package/dist/lib-cjs/api/classes/placementAnimation.js +176 -176
  23. package/dist/lib-cjs/api/classes/variant.d.ts +261 -261
  24. package/dist/lib-cjs/api/classes/variant.js +871 -871
  25. package/dist/lib-cjs/api/classes/variantInstance.d.ts +53 -53
  26. package/dist/lib-cjs/api/classes/variantInstance.js +125 -125
  27. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
  28. package/dist/lib-cjs/api/classes/variantParameterizable.js +86 -86
  29. package/dist/lib-cjs/api/classes/viewer.d.ts +211 -213
  30. package/dist/lib-cjs/api/classes/viewer.js +736 -717
  31. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  32. package/dist/lib-cjs/api/classes/viewerError.d.ts +43 -43
  33. package/dist/lib-cjs/api/classes/viewerError.js +55 -55
  34. package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
  35. package/dist/lib-cjs/api/classes/viewerLight.js +344 -348
  36. package/dist/lib-cjs/api/classes/viewerLight.js.map +1 -1
  37. package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
  38. package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
  39. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +13 -13
  40. package/dist/lib-cjs/api/internal/sceneSetup.js +224 -226
  41. package/dist/lib-cjs/api/internal/sceneSetup.js.map +1 -1
  42. package/dist/lib-cjs/api/manager/animationManager.d.ts +30 -30
  43. package/dist/lib-cjs/api/manager/animationManager.js +126 -126
  44. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +102 -102
  45. package/dist/lib-cjs/api/manager/gltfExportManager.js +322 -322
  46. package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -33
  47. package/dist/lib-cjs/api/manager/sceneManager.js +128 -128
  48. package/dist/lib-cjs/api/manager/tagManager.d.ts +118 -118
  49. package/dist/lib-cjs/api/manager/tagManager.js +535 -535
  50. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -22
  51. package/dist/lib-cjs/api/manager/textureLoadManager.js +98 -98
  52. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +106 -106
  53. package/dist/lib-cjs/api/manager/variantInstanceManager.js +290 -290
  54. package/dist/lib-cjs/api/store/specStorage.d.ts +32 -32
  55. package/dist/lib-cjs/api/store/specStorage.js +65 -65
  56. package/dist/lib-cjs/api/util/babylonHelper.d.ts +238 -238
  57. package/dist/lib-cjs/api/util/babylonHelper.js +826 -826
  58. package/dist/lib-cjs/api/util/geometryHelper.d.ts +7 -7
  59. package/dist/lib-cjs/api/util/geometryHelper.js +115 -115
  60. package/dist/lib-cjs/api/util/globalTypes.d.ts +484 -484
  61. package/dist/lib-cjs/api/util/globalTypes.js +1 -1
  62. package/dist/lib-cjs/api/util/resourceHelper.d.ts +58 -58
  63. package/dist/lib-cjs/api/util/resourceHelper.js +214 -214
  64. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +44 -44
  65. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +175 -175
  66. package/dist/lib-cjs/api/util/stringHelper.d.ts +13 -13
  67. package/dist/lib-cjs/api/util/stringHelper.js +32 -32
  68. package/dist/lib-cjs/api/util/structureHelper.d.ts +9 -9
  69. package/dist/lib-cjs/api/util/structureHelper.js +64 -64
  70. package/dist/lib-cjs/buildinfo.json +3 -3
  71. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  72. package/dist/lib-cjs/index.d.ts +54 -54
  73. package/dist/lib-cjs/index.js +117 -117
  74. package/package.json +84 -82
  75. package/src/api/classes/animationInterface.ts +10 -10
  76. package/src/api/classes/dottedPath.ts +181 -181
  77. package/src/api/classes/element.ts +723 -723
  78. package/src/api/classes/event.ts +457 -457
  79. package/src/api/classes/eventBroadcaster.ts +52 -52
  80. package/src/api/classes/fuzzyMap.ts +21 -21
  81. package/src/api/classes/parameter.ts +686 -686
  82. package/src/api/classes/parameterObservable.ts +73 -73
  83. package/src/api/classes/parameterizable.ts +87 -87
  84. package/src/api/classes/placementAnimation.ts +162 -162
  85. package/src/api/classes/variant.ts +964 -964
  86. package/src/api/classes/variantInstance.ts +123 -123
  87. package/src/api/classes/variantParameterizable.ts +83 -83
  88. package/src/api/classes/viewer.ts +786 -770
  89. package/src/api/classes/viewerError.ts +63 -63
  90. package/src/api/classes/viewerLight.ts +335 -339
  91. package/src/api/internal/debugViewer.ts +90 -90
  92. package/src/api/internal/lensRendering.ts +9 -9
  93. package/src/api/internal/sceneSetup.ts +203 -205
  94. package/src/api/manager/animationManager.ts +143 -143
  95. package/src/api/manager/gltfExportManager.ts +312 -312
  96. package/src/api/manager/sceneManager.ts +134 -134
  97. package/src/api/manager/tagManager.ts +576 -576
  98. package/src/api/manager/textureLoadManager.ts +96 -96
  99. package/src/api/manager/variantInstanceManager.ts +306 -306
  100. package/src/api/store/specStorage.ts +68 -68
  101. package/src/api/util/babylonHelper.ts +915 -915
  102. package/src/api/util/geometryHelper.ts +140 -140
  103. package/src/api/util/globalTypes.ts +560 -560
  104. package/src/api/util/resourceHelper.ts +201 -201
  105. package/src/api/util/sceneLoaderHelper.ts +170 -170
  106. package/src/api/util/stringHelper.ts +30 -30
  107. package/src/api/util/structureHelper.ts +63 -63
  108. package/src/buildinfo.json +3 -3
  109. package/src/dev.ts +70 -62
  110. package/src/index.ts +103 -103
  111. package/src/types.d.ts +49 -38
@@ -1,213 +1,211 @@
1
- import { AnimationManager } from '../manager/animationManager';
2
- import { GltfExportManager } from '../manager/gltfExportManager';
3
- import { SceneManager } from '../manager/sceneManager';
4
- import { TagManager } from '../manager/tagManager';
5
- import { VariantInstanceManager } from '../manager/variantInstanceManager';
6
- import * as Index from './../../index';
7
- import { AnimationInterface } from './animationInterface';
8
- import { EventBroadcaster } from './eventBroadcaster';
9
- import { VariantInstance } from './variantInstance';
10
- import { Engine } from '@babylonjs/core/Engines/engine';
11
- import { Mesh } from '@babylonjs/core/Meshes/mesh';
12
- import { Scene } from '@babylonjs/core/scene';
13
- /**
14
- * The main exposed object. This is the entry point into the application
15
- *
16
- * ```js
17
- * const canvas = document.getElementById( 'babylon-canvas' );
18
- * const viewer = Viewer( canvas, '/path/to/index.json' );
19
- * ```
20
- * The class does nothing on its own and needs to {@link bootstrap}
21
- */
22
- export declare class Viewer extends EventBroadcaster {
23
- readonly canvas: HTMLCanvasElement;
24
- protected structureJson: string | StructureJson;
25
- static readonly BOUNDING_BOX_NAME = "__bounding_box__";
26
- protected _scene: Scene | null;
27
- protected _animationManager: AnimationManager | null;
28
- protected _sceneManager: SceneManager | null;
29
- protected _tagManager: TagManager | null;
30
- protected _gltfExportManager: GltfExportManager | null;
31
- protected _variantInstances: VariantInstanceManager | null;
32
- protected _cloneMaterialsOnMutation: boolean;
33
- protected _isRenderLoopPaused: boolean;
34
- protected _inspectorLoaded: boolean;
35
- protected _nodeNamingStrategyHandler: NodeNamingStrategyHandler | null;
36
- static version: string;
37
- private static readonly _autofocusConstants;
38
- /**
39
- * Help function for automatically creating a valid Spec from a list of variant names and dedicated GLB/babylon URLs.
40
- * This data is most likely coming from babylon assets from the Combeenation system but other sources are also valid.
41
- */
42
- static generateSpec(genData: SpecGenerationData[]): AutoSpecStructureJson;
43
- /**
44
- * Returns all modules which are exported by the viewers index file.
45
- *
46
- * Needed by the [Combeenation viewer control](https://docs.combeenation.com/docs/3d-viewer-control) in situations where the viewer is injected from external code.
47
- *
48
- * See [Combeenation docs](https://docs.combeenation.com/docs/3d-viewer-control-with-custom-js) for more details.
49
- */
50
- static getAllViewerModules(): typeof Index;
51
- /**
52
- * Constructor
53
- */
54
- constructor(canvas: HTMLCanvasElement, structureJson: string | StructureJson);
55
- /**
56
- * Gets the Babylon.js Scene that is attached to the instance.
57
- *
58
- * @throws Error if the `scene` has not been initialized.
59
- */
60
- get scene(): Scene;
61
- /**
62
- * Gets the {@link SceneManager} attached to the viewer.
63
- *
64
- * @throws Error if the {@link SceneManager} has not been initialized.
65
- */
66
- get sceneManager(): SceneManager;
67
- /**
68
- * Gets the {@link GltfExportManager} attached to the viewer.
69
- *
70
- * @throws Error if the {@link GltfExportManager} has not been initialized.
71
- */
72
- get gltfExportManager(): GltfExportManager;
73
- /**
74
- * Gets the Babylon.js Engine that is attached to the viewer.
75
- */
76
- get engine(): Engine;
77
- /**
78
- * Gets the {@link VariantInstanceManager} attached to the viewer.
79
- *
80
- * @throws Error if the {@link VariantInstanceManager} has not been initialized.
81
- */
82
- get variantInstances(): VariantInstanceManager;
83
- /**
84
- * Gets the {@link AnimationManager} attached to the viewer.
85
- *
86
- * @throws Error if the {@link AnimationManager} has not been initialized.
87
- */
88
- get animationManager(): AnimationManager;
89
- get tagManager(): TagManager;
90
- /**
91
- * Gets the `cloneMaterialsOnMutation` flag, as defined in the spec
92
- */
93
- get cloneMaterialsOnMutation(): boolean;
94
- /**
95
- * Gets the strategy handler for naming cloned nodes.
96
- */
97
- get nodeNamingStrategyHandler(): NodeNamingStrategyHandler;
98
- /**
99
- * Sets the strategy handler for naming cloned nodes.\
100
- * Check the docs of the tag managers [renaming](https://3dviewer.docs.combeenation.com/pages/documentation/Tag-Manager.html#uniqueness-of-node-and-tag-names)
101
- * chapter for further details.
102
- */
103
- set nodeNamingStrategyHandler(value: NodeNamingStrategyHandler);
104
- /**
105
- * Starts the application. This will
106
- * * load the given "index" JSON file
107
- * * setup the scene with the "scene" JSON file
108
- * * create an (optional) default setup with different variant settings
109
- * * sets up resizing by attaching a debounced version of {@link resize}
110
- *
111
- * @throws Error if any of the files is not found/valid
112
- *
113
- * @emits {@link Event.BOOTSTRAP_START}
114
- * @emits {@link Event.BOOTSTRAP_END}
115
- */
116
- bootstrap(tagManagerParameterValues?: TagManagerParameterValue[]): Promise<Viewer>;
117
- /**
118
- * Enables the Babylon.js [Inspector](https://doc.babylonjs.com/toolsAndResources/tools/inspector).\
119
- * Due to the additional size of the inspector, the CDN version is used instead of shipping the required code with
120
- * the viewer.\
121
- * This means that the code will be downloaded only when needed and calling `enableDebugLayer` can take a little while
122
- * depending on your internet connection etc.
123
- */
124
- enableDebugLayer(options?: IInspectorOptions): Promise<void>;
125
- /**
126
- * Destroys all registered {@link VariantInstance}s that are registered
127
- */
128
- destroyVariantInstances(): Viewer;
129
- /**
130
- * Trigger a resize event for the `Engine`
131
- */
132
- resize(): Viewer;
133
- /**
134
- * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
135
- * {@link DottedPath}s.
136
- */
137
- getNode(variantInstanceName: string, elementDottedPath: DottedPathArgument, nodeDottedPath: DottedPathArgument): Promise<TransformNode>;
138
- /**
139
- * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
140
- * {@link DottedPath}s.
141
- */
142
- getMesh(variantInstanceName: string, elementDottedPath: DottedPathArgument, meshDottedPath: DottedPathArgument): Promise<Mesh | null>;
143
- /**
144
- * Switches the camera
145
- *
146
- * @emits {@link Event.CAMERA_SWITCHED}
147
- */
148
- switchCamera(newCamera: string, reset?: boolean): Viewer;
149
- /**
150
- * Moves or animates the active camera to given `placement`.
151
- */
152
- moveActiveCameraTo(placement: string | PlacementDefinition, animation?: string | AnimationDefinition): Promise<AnimationInterface>;
153
- /**
154
- * Takes a sceenshot the the current scene. The result is a string containing a base64 encoded image
155
- */
156
- screenshot(settings?: ScreenshotSettings): Promise<string>;
157
- /**
158
- * Checks whether the browser is capable of handling XR.
159
- */
160
- isBrowserARCapable(): Promise<boolean>;
161
- /**
162
- * Calculates the bounding box from all visible meshes on the scene.
163
- */
164
- calculateBoundingBox(excludeGeometry?: ExcludedGeometryList): Promise<Mesh>;
165
- /**
166
- * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
167
- */
168
- autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
169
- /**
170
- * Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
171
- * environment
172
- */
173
- reset(tagManagerParameterValues?: TagManagerParameterValue[]): Promise<Viewer>;
174
- /**
175
- * Destroys
176
- *
177
- * * all {@link VariantInstance}s using {@link destroyVariantInstances}
178
- * * calling `dispose` on the `Engine` and `Scene`
179
- */
180
- destroy(): Viewer;
181
- /**
182
- * Show coordinate system with given dimension (for debugging purpose).
183
- */
184
- showWorldCoordinates(dimension: number): void;
185
- /**
186
- * Pause render loop.
187
- */
188
- pauseRendering(): void;
189
- /**
190
- * Resume render loop when paused.
191
- */
192
- resumeRendering(): void;
193
- /**
194
- * Prints defined instances from SetupJson to the console.
195
- */
196
- protected printInstanceDefinitions(setupJson: SetupJson): void;
197
- /**
198
- * @emits {@link Event.SCENE_PROCESSING_START}
199
- * @emits {@link Event.SCENE_PROCESSING_END}
200
- */
201
- protected initScene(): Promise<Scene>;
202
- /**
203
- * Register custom file loader for babylon files which adds "missing-material" metadata to meshes which reference
204
- * materials that are not present in the `materials` section of the given babylon file.
205
- *
206
- * Required for babylon files & materials loaded from "Combeenation configurator assets".
207
- */
208
- protected initCbnBabylonLoaderPlugin(): void;
209
- /**
210
- * Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
211
- */
212
- protected createVariantInstances(): Promise<VariantInstance[]>;
213
- }
1
+ import { AnimationManager } from '../manager/animationManager';
2
+ import { GltfExportManager } from '../manager/gltfExportManager';
3
+ import { SceneManager } from '../manager/sceneManager';
4
+ import { TagManager } from '../manager/tagManager';
5
+ import { VariantInstanceManager } from '../manager/variantInstanceManager';
6
+ import * as Index from './../../index';
7
+ import { AnimationInterface } from './animationInterface';
8
+ import { EventBroadcaster } from './eventBroadcaster';
9
+ import { VariantInstance } from './variantInstance';
10
+ import { Engine } from '@babylonjs/core/Engines/engine';
11
+ import { Mesh } from '@babylonjs/core/Meshes/mesh';
12
+ import { Scene } from '@babylonjs/core/scene';
13
+ /**
14
+ * The main exposed object. This is the entry point into the application
15
+ *
16
+ * ```js
17
+ * const canvas = document.getElementById( 'babylon-canvas' );
18
+ * const viewer = Viewer( canvas, '/path/to/index.json' );
19
+ * ```
20
+ * The class does nothing on its own and needs to {@link bootstrap}
21
+ */
22
+ export declare class Viewer extends EventBroadcaster {
23
+ readonly canvas: HTMLCanvasElement;
24
+ protected structureJson: string | StructureJson;
25
+ static readonly BOUNDING_BOX_NAME = "__bounding_box__";
26
+ protected _scene: Scene | null;
27
+ protected _animationManager: AnimationManager | null;
28
+ protected _sceneManager: SceneManager | null;
29
+ protected _tagManager: TagManager | null;
30
+ protected _gltfExportManager: GltfExportManager | null;
31
+ protected _variantInstances: VariantInstanceManager | null;
32
+ protected _cloneMaterialsOnMutation: boolean;
33
+ protected _isRenderLoopPaused: boolean;
34
+ protected _nodeNamingStrategyHandler: NodeNamingStrategyHandler | null;
35
+ static version: string;
36
+ private static readonly _autofocusConstants;
37
+ /**
38
+ * Help function for automatically creating a valid Spec from a list of variant names and dedicated GLB/babylon URLs.
39
+ * This data is most likely coming from babylon assets from the Combeenation system but other sources are also valid.
40
+ */
41
+ static generateSpec(genData: SpecGenerationData[]): AutoSpecStructureJson;
42
+ /**
43
+ * Returns all modules which are exported by the viewers index file.
44
+ *
45
+ * Needed by the [Combeenation viewer control](https://docs.combeenation.com/docs/3d-viewer-control) in situations where the viewer is injected from external code.
46
+ *
47
+ * See [Combeenation docs](https://docs.combeenation.com/docs/3d-viewer-control-with-custom-js) for more details.
48
+ */
49
+ static getAllViewerModules(): typeof Index;
50
+ /**
51
+ * Constructor
52
+ */
53
+ constructor(canvas: HTMLCanvasElement, structureJson: string | StructureJson);
54
+ /**
55
+ * Gets the Babylon.js Scene that is attached to the instance.
56
+ *
57
+ * @throws Error if the `scene` has not been initialized.
58
+ */
59
+ get scene(): Scene;
60
+ /**
61
+ * Gets the {@link SceneManager} attached to the viewer.
62
+ *
63
+ * @throws Error if the {@link SceneManager} has not been initialized.
64
+ */
65
+ get sceneManager(): SceneManager;
66
+ /**
67
+ * Gets the {@link GltfExportManager} attached to the viewer.
68
+ *
69
+ * @throws Error if the {@link GltfExportManager} has not been initialized.
70
+ */
71
+ get gltfExportManager(): GltfExportManager;
72
+ /**
73
+ * Gets the Babylon.js Engine that is attached to the viewer.
74
+ */
75
+ get engine(): Engine;
76
+ /**
77
+ * Gets the {@link VariantInstanceManager} attached to the viewer.
78
+ *
79
+ * @throws Error if the {@link VariantInstanceManager} has not been initialized.
80
+ */
81
+ get variantInstances(): VariantInstanceManager;
82
+ /**
83
+ * Gets the {@link AnimationManager} attached to the viewer.
84
+ *
85
+ * @throws Error if the {@link AnimationManager} has not been initialized.
86
+ */
87
+ get animationManager(): AnimationManager;
88
+ get tagManager(): TagManager;
89
+ /**
90
+ * Gets the `cloneMaterialsOnMutation` flag, as defined in the spec
91
+ */
92
+ get cloneMaterialsOnMutation(): boolean;
93
+ /**
94
+ * Gets the strategy handler for naming cloned nodes.
95
+ */
96
+ get nodeNamingStrategyHandler(): NodeNamingStrategyHandler;
97
+ /**
98
+ * Sets the strategy handler for naming cloned nodes.\
99
+ * Check the docs of the tag managers [renaming](https://3dviewer.docs.combeenation.com/pages/documentation/Tag-Manager.html#uniqueness-of-node-and-tag-names)
100
+ * chapter for further details.
101
+ */
102
+ set nodeNamingStrategyHandler(value: NodeNamingStrategyHandler);
103
+ /**
104
+ * Starts the application. This will
105
+ * * load the given "index" JSON file
106
+ * * setup the scene with the "scene" JSON file
107
+ * * create an (optional) default setup with different variant settings
108
+ * * sets up resizing by attaching a debounced version of {@link resize}
109
+ *
110
+ * @throws Error if any of the files is not found/valid
111
+ *
112
+ * @emits {@link Event.BOOTSTRAP_START}
113
+ * @emits {@link Event.BOOTSTRAP_END}
114
+ */
115
+ bootstrap(tagManagerParameterValues?: TagManagerParameterValue[]): Promise<Viewer>;
116
+ /**
117
+ * Enables the Babylon.js [Inspector](https://doc.babylonjs.com/toolsAndResources/tools/inspector).\
118
+ * Due to the additional size of the inspector, this function is only available in "development" builds!
119
+ *
120
+ * @returns Signalizes if inspector could be loaded
121
+ */
122
+ enableDebugLayer(options?: IInspectorOptions): Promise<boolean>;
123
+ /**
124
+ * Destroys all registered {@link VariantInstance}s that are registered
125
+ */
126
+ destroyVariantInstances(): Viewer;
127
+ /**
128
+ * Trigger a resize event for the `Engine`
129
+ */
130
+ resize(): Viewer;
131
+ /**
132
+ * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
133
+ * {@link DottedPath}s.
134
+ */
135
+ getNode(variantInstanceName: string, elementDottedPath: DottedPathArgument, nodeDottedPath: DottedPathArgument): Promise<TransformNode>;
136
+ /**
137
+ * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
138
+ * {@link DottedPath}s.
139
+ */
140
+ getMesh(variantInstanceName: string, elementDottedPath: DottedPathArgument, meshDottedPath: DottedPathArgument): Promise<Mesh | null>;
141
+ /**
142
+ * Switches the camera
143
+ *
144
+ * @emits {@link Event.CAMERA_SWITCHED}
145
+ */
146
+ switchCamera(newCamera: string, reset?: boolean): Viewer;
147
+ /**
148
+ * Moves or animates the active camera to given `placement`.
149
+ */
150
+ moveActiveCameraTo(placement: string | PlacementDefinition, animation?: string | AnimationDefinition): Promise<AnimationInterface>;
151
+ /**
152
+ * Takes a sceenshot the the current scene. The result is a string containing a base64 encoded image
153
+ */
154
+ screenshot(settings?: ScreenshotSettings): Promise<string>;
155
+ /**
156
+ * Checks whether the browser is capable of handling XR.
157
+ */
158
+ isBrowserARCapable(): Promise<boolean>;
159
+ /**
160
+ * Calculates the bounding box from all visible meshes on the scene.
161
+ */
162
+ calculateBoundingBox(excludeGeometry?: ExcludedGeometryList): Promise<Mesh>;
163
+ /**
164
+ * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
165
+ */
166
+ autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
167
+ /**
168
+ * Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
169
+ * environment
170
+ */
171
+ reset(tagManagerParameterValues?: TagManagerParameterValue[]): Promise<Viewer>;
172
+ /**
173
+ * Destroys
174
+ *
175
+ * * all {@link VariantInstance}s using {@link destroyVariantInstances}
176
+ * * calling `dispose` on the `Engine` and `Scene`
177
+ */
178
+ destroy(): Viewer;
179
+ /**
180
+ * Show coordinate system with given dimension (for debugging purpose).
181
+ */
182
+ showWorldCoordinates(dimension: number): void;
183
+ /**
184
+ * Pause render loop.
185
+ */
186
+ pauseRendering(): void;
187
+ /**
188
+ * Resume render loop when paused.
189
+ */
190
+ resumeRendering(): void;
191
+ /**
192
+ * Prints defined instances from SetupJson to the console.
193
+ */
194
+ protected printInstanceDefinitions(setupJson: SetupJson): void;
195
+ /**
196
+ * @emits {@link Event.SCENE_PROCESSING_START}
197
+ * @emits {@link Event.SCENE_PROCESSING_END}
198
+ */
199
+ protected initScene(): Promise<Scene>;
200
+ /**
201
+ * Register custom file loader for babylon files which adds "missing-material" metadata to meshes which reference
202
+ * materials that are not present in the `materials` section of the given babylon file.
203
+ *
204
+ * Required for babylon files & materials loaded from "Combeenation configurator assets".
205
+ */
206
+ protected initCbnBabylonLoaderPlugin(): void;
207
+ /**
208
+ * Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
209
+ */
210
+ protected createVariantInstances(): Promise<VariantInstance[]>;
211
+ }