@combeenation/3d-viewer 6.0.0 → 6.1.0-beta2

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 (189) hide show
  1. package/README.md +111 -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 +149 -149
  7. package/dist/lib-cjs/api/classes/element.js +669 -669
  8. package/dist/lib-cjs/api/classes/event.d.ts +342 -326
  9. package/dist/lib-cjs/api/classes/event.js +365 -349
  10. package/dist/lib-cjs/api/classes/event.js.map +1 -1
  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/parameter.d.ts +339 -339
  14. package/dist/lib-cjs/api/classes/parameter.js +464 -464
  15. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
  16. package/dist/lib-cjs/api/classes/parameterObservable.js +97 -97
  17. package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -15
  18. package/dist/lib-cjs/api/classes/parameterizable.js +102 -102
  19. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +45 -45
  20. package/dist/lib-cjs/api/classes/placementAnimation.js +176 -176
  21. package/dist/lib-cjs/api/classes/variant.d.ts +234 -234
  22. package/dist/lib-cjs/api/classes/variant.js +836 -836
  23. package/dist/lib-cjs/api/classes/variantInstance.d.ts +44 -44
  24. package/dist/lib-cjs/api/classes/variantInstance.js +105 -105
  25. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
  26. package/dist/lib-cjs/api/classes/variantParameterizable.js +88 -88
  27. package/dist/lib-cjs/api/classes/viewer.d.ts +187 -189
  28. package/dist/lib-cjs/api/classes/viewer.js +594 -594
  29. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  30. package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
  31. package/dist/lib-cjs/api/classes/viewerLight.js +348 -348
  32. package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
  33. package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
  34. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +13 -13
  35. package/dist/lib-cjs/api/internal/sceneSetup.js +226 -226
  36. package/dist/lib-cjs/api/manager/animationManager.d.ts +30 -30
  37. package/dist/lib-cjs/api/manager/animationManager.js +126 -126
  38. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +78 -65
  39. package/dist/lib-cjs/api/manager/gltfExportManager.js +241 -197
  40. package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
  41. package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -31
  42. package/dist/lib-cjs/api/manager/sceneManager.js +130 -127
  43. package/dist/lib-cjs/api/manager/sceneManager.js.map +1 -1
  44. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -0
  45. package/dist/lib-cjs/api/manager/textureLoadManager.js +98 -0
  46. package/dist/lib-cjs/api/manager/textureLoadManager.js.map +1 -0
  47. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +92 -92
  48. package/dist/lib-cjs/api/manager/variantInstanceManager.js +260 -260
  49. package/dist/lib-cjs/api/store/specStorage.d.ts +24 -24
  50. package/dist/lib-cjs/api/store/specStorage.js +50 -50
  51. package/dist/lib-cjs/api/util/babylonHelper.d.ts +183 -174
  52. package/dist/lib-cjs/api/util/babylonHelper.js +596 -585
  53. package/dist/lib-cjs/api/util/babylonHelper.js.map +1 -1
  54. package/dist/lib-cjs/api/util/globalTypes.d.ts +383 -370
  55. package/dist/lib-cjs/api/util/globalTypes.js +1 -1
  56. package/dist/lib-cjs/api/util/resourceHelper.d.ts +58 -58
  57. package/dist/lib-cjs/api/util/resourceHelper.js +203 -203
  58. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +42 -35
  59. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +139 -139
  60. package/dist/lib-cjs/api/util/sceneLoaderHelper.js.map +1 -1
  61. package/dist/lib-cjs/api/util/stringHelper.d.ts +9 -9
  62. package/dist/lib-cjs/api/util/stringHelper.js +25 -25
  63. package/dist/lib-cjs/api/util/structureHelper.d.ts +9 -9
  64. package/dist/lib-cjs/api/util/structureHelper.js +48 -48
  65. package/dist/lib-cjs/buildinfo.json +3 -3
  66. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  67. package/dist/lib-cjs/index.d.ts +51 -51
  68. package/dist/lib-cjs/index.js +110 -110
  69. package/dist/webpack-stats.json +0 -0
  70. package/package.json +79 -79
  71. package/src/api/classes/animationInterface.ts +10 -10
  72. package/src/api/classes/dottedPath.ts +181 -181
  73. package/src/api/classes/element.ts +717 -717
  74. package/src/api/classes/event.ts +385 -367
  75. package/src/api/classes/eventBroadcaster.ts +52 -52
  76. package/src/api/classes/parameter.ts +497 -497
  77. package/src/api/classes/parameterObservable.ts +100 -100
  78. package/src/api/classes/parameterizable.ts +87 -87
  79. package/src/api/classes/placementAnimation.ts +162 -162
  80. package/src/api/classes/variant.ts +904 -904
  81. package/src/api/classes/variantInstance.ts +97 -97
  82. package/src/api/classes/variantParameterizable.ts +85 -85
  83. package/src/api/classes/viewer.ts +672 -670
  84. package/src/api/classes/viewerLight.ts +339 -339
  85. package/src/api/internal/debugViewer.ts +90 -90
  86. package/src/api/internal/lensRendering.ts +9 -9
  87. package/src/api/internal/sceneSetup.ts +205 -205
  88. package/src/api/manager/animationManager.ts +143 -143
  89. package/src/api/manager/gltfExportManager.ts +236 -192
  90. package/src/api/manager/sceneManager.ts +132 -127
  91. package/src/api/manager/textureLoadManager.ts +95 -0
  92. package/src/api/manager/variantInstanceManager.ts +265 -265
  93. package/src/api/store/specStorage.ts +51 -51
  94. package/src/api/util/babylonHelper.ts +658 -645
  95. package/src/api/util/globalTypes.ts +432 -417
  96. package/src/api/util/resourceHelper.ts +191 -191
  97. package/src/api/util/sceneLoaderHelper.ts +137 -144
  98. package/src/api/util/stringHelper.ts +23 -23
  99. package/src/api/util/structureHelper.ts +49 -49
  100. package/src/buildinfo.json +3 -3
  101. package/src/dev.ts +61 -61
  102. package/src/index.ts +96 -96
  103. package/src/types.d.ts +28 -28
  104. package/dist/lib-es6/api/classes/animationInterface.d.ts +0 -8
  105. package/dist/lib-es6/api/classes/animationInterface.js +0 -2
  106. package/dist/lib-es6/api/classes/animationInterface.js.map +0 -1
  107. package/dist/lib-es6/api/classes/dottedPath.d.ts +0 -79
  108. package/dist/lib-es6/api/classes/dottedPath.js +0 -163
  109. package/dist/lib-es6/api/classes/dottedPath.js.map +0 -1
  110. package/dist/lib-es6/api/classes/element.d.ts +0 -149
  111. package/dist/lib-es6/api/classes/element.js +0 -666
  112. package/dist/lib-es6/api/classes/element.js.map +0 -1
  113. package/dist/lib-es6/api/classes/event.d.ts +0 -326
  114. package/dist/lib-es6/api/classes/event.js +0 -346
  115. package/dist/lib-es6/api/classes/event.js.map +0 -1
  116. package/dist/lib-es6/api/classes/eventBroadcaster.d.ts +0 -26
  117. package/dist/lib-es6/api/classes/eventBroadcaster.js +0 -43
  118. package/dist/lib-es6/api/classes/eventBroadcaster.js.map +0 -1
  119. package/dist/lib-es6/api/classes/parameter.d.ts +0 -339
  120. package/dist/lib-es6/api/classes/parameter.js +0 -461
  121. package/dist/lib-es6/api/classes/parameter.js.map +0 -1
  122. package/dist/lib-es6/api/classes/parameterObservable.d.ts +0 -36
  123. package/dist/lib-es6/api/classes/parameterObservable.js +0 -94
  124. package/dist/lib-es6/api/classes/parameterObservable.js.map +0 -1
  125. package/dist/lib-es6/api/classes/parameterizable.d.ts +0 -15
  126. package/dist/lib-es6/api/classes/parameterizable.js +0 -99
  127. package/dist/lib-es6/api/classes/parameterizable.js.map +0 -1
  128. package/dist/lib-es6/api/classes/placementAnimation.d.ts +0 -45
  129. package/dist/lib-es6/api/classes/placementAnimation.js +0 -173
  130. package/dist/lib-es6/api/classes/placementAnimation.js.map +0 -1
  131. package/dist/lib-es6/api/classes/variant.d.ts +0 -234
  132. package/dist/lib-es6/api/classes/variant.js +0 -833
  133. package/dist/lib-es6/api/classes/variant.js.map +0 -1
  134. package/dist/lib-es6/api/classes/variantInstance.d.ts +0 -44
  135. package/dist/lib-es6/api/classes/variantInstance.js +0 -102
  136. package/dist/lib-es6/api/classes/variantInstance.js.map +0 -1
  137. package/dist/lib-es6/api/classes/variantParameterizable.d.ts +0 -17
  138. package/dist/lib-es6/api/classes/variantParameterizable.js +0 -85
  139. package/dist/lib-es6/api/classes/variantParameterizable.js.map +0 -1
  140. package/dist/lib-es6/api/classes/viewer.d.ts +0 -189
  141. package/dist/lib-es6/api/classes/viewer.js +0 -588
  142. package/dist/lib-es6/api/classes/viewer.js.map +0 -1
  143. package/dist/lib-es6/api/classes/viewerLight.d.ts +0 -66
  144. package/dist/lib-es6/api/classes/viewerLight.js +0 -322
  145. package/dist/lib-es6/api/classes/viewerLight.js.map +0 -1
  146. package/dist/lib-es6/api/internal/lensRendering.d.ts +0 -8
  147. package/dist/lib-es6/api/internal/lensRendering.js +0 -9
  148. package/dist/lib-es6/api/internal/lensRendering.js.map +0 -1
  149. package/dist/lib-es6/api/internal/sceneSetup.d.ts +0 -13
  150. package/dist/lib-es6/api/internal/sceneSetup.js +0 -199
  151. package/dist/lib-es6/api/internal/sceneSetup.js.map +0 -1
  152. package/dist/lib-es6/api/manager/animationManager.d.ts +0 -30
  153. package/dist/lib-es6/api/manager/animationManager.js +0 -123
  154. package/dist/lib-es6/api/manager/animationManager.js.map +0 -1
  155. package/dist/lib-es6/api/manager/gltfExportManager.d.ts +0 -65
  156. package/dist/lib-es6/api/manager/gltfExportManager.js +0 -194
  157. package/dist/lib-es6/api/manager/gltfExportManager.js.map +0 -1
  158. package/dist/lib-es6/api/manager/sceneManager.d.ts +0 -31
  159. package/dist/lib-es6/api/manager/sceneManager.js +0 -124
  160. package/dist/lib-es6/api/manager/sceneManager.js.map +0 -1
  161. package/dist/lib-es6/api/manager/variantInstanceManager.d.ts +0 -92
  162. package/dist/lib-es6/api/manager/variantInstanceManager.js +0 -257
  163. package/dist/lib-es6/api/manager/variantInstanceManager.js.map +0 -1
  164. package/dist/lib-es6/api/store/specStorage.d.ts +0 -24
  165. package/dist/lib-es6/api/store/specStorage.js +0 -47
  166. package/dist/lib-es6/api/store/specStorage.js.map +0 -1
  167. package/dist/lib-es6/api/util/babylonHelper.d.ts +0 -174
  168. package/dist/lib-es6/api/util/babylonHelper.js +0 -556
  169. package/dist/lib-es6/api/util/babylonHelper.js.map +0 -1
  170. package/dist/lib-es6/api/util/globalTypes.d.ts +0 -370
  171. package/dist/lib-es6/api/util/globalTypes.js +0 -2
  172. package/dist/lib-es6/api/util/globalTypes.js.map +0 -1
  173. package/dist/lib-es6/api/util/resourceHelper.d.ts +0 -58
  174. package/dist/lib-es6/api/util/resourceHelper.js +0 -194
  175. package/dist/lib-es6/api/util/resourceHelper.js.map +0 -1
  176. package/dist/lib-es6/api/util/sceneLoaderHelper.d.ts +0 -35
  177. package/dist/lib-es6/api/util/sceneLoaderHelper.js +0 -130
  178. package/dist/lib-es6/api/util/sceneLoaderHelper.js.map +0 -1
  179. package/dist/lib-es6/api/util/stringHelper.d.ts +0 -9
  180. package/dist/lib-es6/api/util/stringHelper.js +0 -22
  181. package/dist/lib-es6/api/util/stringHelper.js.map +0 -1
  182. package/dist/lib-es6/api/util/structureHelper.d.ts +0 -9
  183. package/dist/lib-es6/api/util/structureHelper.js +0 -46
  184. package/dist/lib-es6/api/util/structureHelper.js.map +0 -1
  185. package/dist/lib-es6/buildinfo.json +0 -3
  186. package/dist/lib-es6/es6.tsconfig.tsbuildinfo +0 -1
  187. package/dist/lib-es6/index.d.ts +0 -51
  188. package/dist/lib-es6/index.js +0 -49
  189. package/dist/lib-es6/index.js.map +0 -1
@@ -1,189 +1,187 @@
1
- import { AnimationManager } from '../manager/animationManager';
2
- import { GltfExportManager } from '../manager/gltfExportManager';
3
- import { SceneManager } from '../manager/sceneManager';
4
- import { VariantInstanceManager } from '../manager/variantInstanceManager';
5
- import { AnimationInterface } from './animationInterface';
6
- import { EventBroadcaster } from './eventBroadcaster';
7
- import { VariantInstance } from './variantInstance';
8
- import { Engine } from '@babylonjs/core/Engines/engine';
9
- import { Mesh } from '@babylonjs/core/Meshes/mesh';
10
- import { Scene } from '@babylonjs/core/scene';
11
- /**
12
- * The main exposed object. This is the entry point into the application
13
- *
14
- * ```js
15
- * const canvas = document.getElementById( 'babylon-canvas' );
16
- * const viewer = Viewer( canvas, '/path/to/index.json' );
17
- * ```
18
- * The class does nothing on its own and needs to {@link bootstrap}
19
- */
20
- export declare class Viewer extends EventBroadcaster {
21
- readonly canvas: HTMLCanvasElement;
22
- protected structureJson: string | StructureJson;
23
- protected _scene: Scene | null;
24
- protected _animationManager: AnimationManager | null;
25
- protected _sceneManager: SceneManager | null;
26
- protected _gltfExportManager: GltfExportManager | null;
27
- protected _variantInstances: VariantInstanceManager | null;
28
- protected _cloneMaterialsOnMutation: boolean;
29
- protected _isRenderLoopPaused: boolean;
30
- protected _inspectorLoaded: boolean;
31
- static version: {
32
- version: string;
33
- };
34
- /**
35
- * Constructor
36
- */
37
- constructor(canvas: HTMLCanvasElement, structureJson: string | StructureJson);
38
- /**
39
- * Gets the BabylonJS Scene that is attached to the instance.
40
- *
41
- * @throws Error if the `scene` has not been initialized.
42
- */
43
- get scene(): Scene;
44
- /**
45
- * Gets the {@link SceneManager} attached to the viewer.
46
- *
47
- * @throws Error if the {@link SceneManager} has not been initialized.
48
- */
49
- get sceneManager(): SceneManager;
50
- /**
51
- * Gets the {@link GltfExportManager} attached to the viewer.
52
- *
53
- * @throws Error if the {@link GltfExportManager} has not been initialized.
54
- */
55
- get gltfExportManager(): GltfExportManager;
56
- /**
57
- * Gets the BabylonJS Engine that is attached to the viewer.
58
- */
59
- get engine(): Engine;
60
- /**
61
- * Gets the {@link VariantInstanceManager} attached to the viewer.
62
- *
63
- * @throws Error if the {@link VariantInstanceManager} has not been initialized.
64
- */
65
- get variantInstances(): VariantInstanceManager;
66
- /**
67
- * Gets the {@link AnimationManager} attached to the viewer.
68
- *
69
- * @throws Error if the {@link AnimationManager} has not been initialized.
70
- */
71
- get animationManager(): AnimationManager;
72
- /**
73
- * Gets the `cloneMaterialsOnMutation` flag, as defined in the spec
74
- */
75
- get cloneMaterialsOnMutation(): boolean;
76
- /**
77
- * Starts the application. This will
78
- * * load the given "index" JSON file
79
- * * setup the scene with the "scene" JSON file
80
- * * create an (optional) default setup with different variant settings
81
- * * sets up resizing by attaching a debounced version of {@link resize}
82
- *
83
- * @throws Error if any of the files is not found/valid
84
- *
85
- * @emits {@link Event.BOOTSTRAP_START}
86
- * @emits {@link Event.BOOTSTRAP_END}
87
- */
88
- bootstrap(): Promise<Viewer>;
89
- /**
90
- * Enables the BabylonJS [Inspector](https://doc.babylonjs.com/toolsAndResources/tools/inspector).\
91
- * Due to the additional size of the inspector, the CDN version is used instead of shipping the required code with
92
- * the viewer.\
93
- * This means that the code will be downloaded only when needed and calling `enableDebugLayer` can take a little while
94
- * depending on your internet connection etc.
95
- */
96
- enableDebugLayer(options?: IInspectorOptions): Promise<void>;
97
- /**
98
- * Destroys all registered {@link VariantInstance}s that are registered
99
- */
100
- destroyVariantInstances(): Viewer;
101
- /**
102
- * Trigger a resize event for the `Engine`
103
- */
104
- resize(): Viewer;
105
- /**
106
- * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
107
- * {@link DottedPath}s.
108
- */
109
- getNode(variantInstanceName: string, elementDottedPath: DottedPathArgument, nodeDottedPath: DottedPathArgument): Promise<TransformNode>;
110
- /**
111
- * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
112
- * {@link DottedPath}s.
113
- */
114
- getMesh(variantInstanceName: string, elementDottedPath: DottedPathArgument, meshDottedPath: DottedPathArgument): Promise<Mesh | null>;
115
- /**
116
- * Switches the camera
117
- *
118
- * @emits {@link Event.CAMERA_SWITCHED}
119
- */
120
- switchCamera(newCamera: string, reset?: boolean): Viewer;
121
- /**
122
- * Moves or animates the active camera to given `placement`.
123
- */
124
- moveActiveCameraTo(placement: string | PlacementDefinition, animation?: string | AnimationDefinition): Promise<AnimationInterface>;
125
- /**
126
- * Takes a sceenshot the the current scene. The result is a string containing a base64 encoded image
127
- */
128
- screenshot(settings?: ScreenshotSettings): Promise<string>;
129
- /**
130
- * Checks whether the browser is capable of handling XR.
131
- */
132
- isBrowserARCapable(): Promise<boolean>;
133
- /**
134
- * Calculates the bounding box from all visible meshes on the scene.
135
- */
136
- calculateBoundingBox(excludeGeometry?: ExcludedGeometryList): Promise<Mesh>;
137
- /**
138
- * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
139
- */
140
- autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
141
- /**
142
- * Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
143
- * environment
144
- */
145
- reset(): Promise<Viewer>;
146
- /**
147
- * Destroys
148
- *
149
- * * all {@link VariantInstance}s using {@link destroyVariantInstances}
150
- * * calling `dispose` on the `Engine` and `Scene`
151
- */
152
- destroy(): Viewer;
153
- /**
154
- * Show coordinate system with given dimension (for debugging purpose).
155
- */
156
- showWorldCoordinates(dimension: number): void;
157
- /**
158
- * Pause render loop.
159
- */
160
- pauseRendering(): void;
161
- /**
162
- * Resume render loop when paused.
163
- */
164
- resumeRendering(): void;
165
- /**
166
- * @emits {@link Event.SCENE_PROCESSING_START}
167
- * @emits {@link Event.SCENE_PROCESSING_END}
168
- */
169
- protected initScene(): Promise<Scene>;
170
- /**
171
- * Register custom file loader for babylon files which adds "missing-material" metadata to meshes which reference
172
- * materials that are not present in the `materials` section of the given babylon file.
173
- *
174
- * Required for babylon files & materials loaded from "Combeenation configurator assets".
175
- */
176
- protected initCbnBabylonLoaderPlugin(): void;
177
- /**
178
- * Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
179
- */
180
- protected createVariantInstances(): Promise<VariantInstance[]>;
181
- /**
182
- * Help function for focusing a helper camera exactly onto the given bounding box
183
- */
184
- private getFocusedHelperCamera;
185
- /**
186
- * Help function for applying the relevant data of the focused helper camera to the real camera
187
- */
188
- private applyFocusedHelperCameraData;
189
- }
1
+ import { AnimationManager } from '../manager/animationManager';
2
+ import { GltfExportManager } from '../manager/gltfExportManager';
3
+ import { SceneManager } from '../manager/sceneManager';
4
+ import { VariantInstanceManager } from '../manager/variantInstanceManager';
5
+ import { AnimationInterface } from './animationInterface';
6
+ import { EventBroadcaster } from './eventBroadcaster';
7
+ import { VariantInstance } from './variantInstance';
8
+ import { Engine } from '@babylonjs/core/Engines/engine';
9
+ import { Mesh } from '@babylonjs/core/Meshes/mesh';
10
+ import { Scene } from '@babylonjs/core/scene';
11
+ /**
12
+ * The main exposed object. This is the entry point into the application
13
+ *
14
+ * ```js
15
+ * const canvas = document.getElementById( 'babylon-canvas' );
16
+ * const viewer = Viewer( canvas, '/path/to/index.json' );
17
+ * ```
18
+ * The class does nothing on its own and needs to {@link bootstrap}
19
+ */
20
+ export declare class Viewer extends EventBroadcaster {
21
+ readonly canvas: HTMLCanvasElement;
22
+ protected structureJson: string | StructureJson;
23
+ protected _scene: Scene | null;
24
+ protected _animationManager: AnimationManager | null;
25
+ protected _sceneManager: SceneManager | null;
26
+ protected _gltfExportManager: GltfExportManager | null;
27
+ protected _variantInstances: VariantInstanceManager | null;
28
+ protected _cloneMaterialsOnMutation: boolean;
29
+ protected _isRenderLoopPaused: boolean;
30
+ protected _inspectorLoaded: boolean;
31
+ static version: string;
32
+ /**
33
+ * Constructor
34
+ */
35
+ constructor(canvas: HTMLCanvasElement, structureJson: string | StructureJson);
36
+ /**
37
+ * Gets the BabylonJS Scene that is attached to the instance.
38
+ *
39
+ * @throws Error if the `scene` has not been initialized.
40
+ */
41
+ get scene(): Scene;
42
+ /**
43
+ * Gets the {@link SceneManager} attached to the viewer.
44
+ *
45
+ * @throws Error if the {@link SceneManager} has not been initialized.
46
+ */
47
+ get sceneManager(): SceneManager;
48
+ /**
49
+ * Gets the {@link GltfExportManager} attached to the viewer.
50
+ *
51
+ * @throws Error if the {@link GltfExportManager} has not been initialized.
52
+ */
53
+ get gltfExportManager(): GltfExportManager;
54
+ /**
55
+ * Gets the BabylonJS Engine that is attached to the viewer.
56
+ */
57
+ get engine(): Engine;
58
+ /**
59
+ * Gets the {@link VariantInstanceManager} attached to the viewer.
60
+ *
61
+ * @throws Error if the {@link VariantInstanceManager} has not been initialized.
62
+ */
63
+ get variantInstances(): VariantInstanceManager;
64
+ /**
65
+ * Gets the {@link AnimationManager} attached to the viewer.
66
+ *
67
+ * @throws Error if the {@link AnimationManager} has not been initialized.
68
+ */
69
+ get animationManager(): AnimationManager;
70
+ /**
71
+ * Gets the `cloneMaterialsOnMutation` flag, as defined in the spec
72
+ */
73
+ get cloneMaterialsOnMutation(): boolean;
74
+ /**
75
+ * Starts the application. This will
76
+ * * load the given "index" JSON file
77
+ * * setup the scene with the "scene" JSON file
78
+ * * create an (optional) default setup with different variant settings
79
+ * * sets up resizing by attaching a debounced version of {@link resize}
80
+ *
81
+ * @throws Error if any of the files is not found/valid
82
+ *
83
+ * @emits {@link Event.BOOTSTRAP_START}
84
+ * @emits {@link Event.BOOTSTRAP_END}
85
+ */
86
+ bootstrap(): Promise<Viewer>;
87
+ /**
88
+ * Enables the BabylonJS [Inspector](https://doc.babylonjs.com/toolsAndResources/tools/inspector).\
89
+ * Due to the additional size of the inspector, the CDN version is used instead of shipping the required code with
90
+ * the viewer.\
91
+ * This means that the code will be downloaded only when needed and calling `enableDebugLayer` can take a little while
92
+ * depending on your internet connection etc.
93
+ */
94
+ enableDebugLayer(options?: IInspectorOptions): Promise<void>;
95
+ /**
96
+ * Destroys all registered {@link VariantInstance}s that are registered
97
+ */
98
+ destroyVariantInstances(): Viewer;
99
+ /**
100
+ * Trigger a resize event for the `Engine`
101
+ */
102
+ resize(): Viewer;
103
+ /**
104
+ * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
105
+ * {@link DottedPath}s.
106
+ */
107
+ getNode(variantInstanceName: string, elementDottedPath: DottedPathArgument, nodeDottedPath: DottedPathArgument): Promise<TransformNode>;
108
+ /**
109
+ * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
110
+ * {@link DottedPath}s.
111
+ */
112
+ getMesh(variantInstanceName: string, elementDottedPath: DottedPathArgument, meshDottedPath: DottedPathArgument): Promise<Mesh | null>;
113
+ /**
114
+ * Switches the camera
115
+ *
116
+ * @emits {@link Event.CAMERA_SWITCHED}
117
+ */
118
+ switchCamera(newCamera: string, reset?: boolean): Viewer;
119
+ /**
120
+ * Moves or animates the active camera to given `placement`.
121
+ */
122
+ moveActiveCameraTo(placement: string | PlacementDefinition, animation?: string | AnimationDefinition): Promise<AnimationInterface>;
123
+ /**
124
+ * Takes a sceenshot the the current scene. The result is a string containing a base64 encoded image
125
+ */
126
+ screenshot(settings?: ScreenshotSettings): Promise<string>;
127
+ /**
128
+ * Checks whether the browser is capable of handling XR.
129
+ */
130
+ isBrowserARCapable(): Promise<boolean>;
131
+ /**
132
+ * Calculates the bounding box from all visible meshes on the scene.
133
+ */
134
+ calculateBoundingBox(excludeGeometry?: ExcludedGeometryList): Promise<Mesh>;
135
+ /**
136
+ * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
137
+ */
138
+ autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
139
+ /**
140
+ * Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
141
+ * environment
142
+ */
143
+ reset(): Promise<Viewer>;
144
+ /**
145
+ * Destroys
146
+ *
147
+ * * all {@link VariantInstance}s using {@link destroyVariantInstances}
148
+ * * calling `dispose` on the `Engine` and `Scene`
149
+ */
150
+ destroy(): Viewer;
151
+ /**
152
+ * Show coordinate system with given dimension (for debugging purpose).
153
+ */
154
+ showWorldCoordinates(dimension: number): void;
155
+ /**
156
+ * Pause render loop.
157
+ */
158
+ pauseRendering(): void;
159
+ /**
160
+ * Resume render loop when paused.
161
+ */
162
+ resumeRendering(): void;
163
+ /**
164
+ * @emits {@link Event.SCENE_PROCESSING_START}
165
+ * @emits {@link Event.SCENE_PROCESSING_END}
166
+ */
167
+ protected initScene(): Promise<Scene>;
168
+ /**
169
+ * Register custom file loader for babylon files which adds "missing-material" metadata to meshes which reference
170
+ * materials that are not present in the `materials` section of the given babylon file.
171
+ *
172
+ * Required for babylon files & materials loaded from "Combeenation configurator assets".
173
+ */
174
+ protected initCbnBabylonLoaderPlugin(): void;
175
+ /**
176
+ * Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
177
+ */
178
+ protected createVariantInstances(): Promise<VariantInstance[]>;
179
+ /**
180
+ * Help function for focusing a helper camera exactly onto the given bounding box
181
+ */
182
+ private getFocusedHelperCamera;
183
+ /**
184
+ * Help function for applying the relevant data of the focused helper camera to the real camera
185
+ */
186
+ private applyFocusedHelperCameraData;
187
+ }