@combeenation/3d-viewer 7.1.0 → 7.1.2

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 (117) 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 +153 -153
  7. package/dist/lib-cjs/api/classes/element.js +672 -670
  8. package/dist/lib-cjs/api/classes/element.js.map +1 -1
  9. package/dist/lib-cjs/api/classes/event.d.ts +401 -396
  10. package/dist/lib-cjs/api/classes/event.js +424 -419
  11. package/dist/lib-cjs/api/classes/event.js.map +1 -1
  12. package/dist/lib-cjs/api/classes/eventBroadcaster.d.ts +26 -26
  13. package/dist/lib-cjs/api/classes/eventBroadcaster.js +49 -49
  14. package/dist/lib-cjs/api/classes/fuzzyMap.d.ts +7 -7
  15. package/dist/lib-cjs/api/classes/fuzzyMap.js +21 -21
  16. package/dist/lib-cjs/api/classes/parameter.d.ts +351 -351
  17. package/dist/lib-cjs/api/classes/parameter.js +524 -517
  18. package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
  19. package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
  20. package/dist/lib-cjs/api/classes/parameterObservable.js +72 -72
  21. package/dist/lib-cjs/api/classes/parameterizable.d.ts +15 -15
  22. package/dist/lib-cjs/api/classes/parameterizable.js +102 -102
  23. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +45 -45
  24. package/dist/lib-cjs/api/classes/placementAnimation.js +176 -176
  25. package/dist/lib-cjs/api/classes/variant.d.ts +253 -253
  26. package/dist/lib-cjs/api/classes/variant.js +858 -843
  27. package/dist/lib-cjs/api/classes/variant.js.map +1 -1
  28. package/dist/lib-cjs/api/classes/variantInstance.d.ts +53 -53
  29. package/dist/lib-cjs/api/classes/variantInstance.js +125 -125
  30. package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
  31. package/dist/lib-cjs/api/classes/variantParameterizable.js +86 -88
  32. package/dist/lib-cjs/api/classes/variantParameterizable.js.map +1 -1
  33. package/dist/lib-cjs/api/classes/viewer.d.ts +204 -199
  34. package/dist/lib-cjs/api/classes/viewer.js +682 -670
  35. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  36. package/dist/lib-cjs/api/classes/viewerError.d.ts +43 -0
  37. package/dist/lib-cjs/api/classes/viewerError.js +56 -0
  38. package/dist/lib-cjs/api/classes/viewerError.js.map +1 -0
  39. package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
  40. package/dist/lib-cjs/api/classes/viewerLight.js +348 -348
  41. package/dist/lib-cjs/api/internal/lensRendering.d.ts +8 -8
  42. package/dist/lib-cjs/api/internal/lensRendering.js +11 -11
  43. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +13 -13
  44. package/dist/lib-cjs/api/internal/sceneSetup.js +226 -226
  45. package/dist/lib-cjs/api/manager/animationManager.d.ts +30 -30
  46. package/dist/lib-cjs/api/manager/animationManager.js +126 -126
  47. package/dist/lib-cjs/api/manager/gltfExportManager.d.ts +79 -78
  48. package/dist/lib-cjs/api/manager/gltfExportManager.js +242 -241
  49. package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
  50. package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -33
  51. package/dist/lib-cjs/api/manager/sceneManager.js +128 -130
  52. package/dist/lib-cjs/api/manager/sceneManager.js.map +1 -1
  53. package/dist/lib-cjs/api/manager/tagManager.d.ts +116 -108
  54. package/dist/lib-cjs/api/manager/tagManager.js +444 -419
  55. package/dist/lib-cjs/api/manager/tagManager.js.map +1 -1
  56. package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -22
  57. package/dist/lib-cjs/api/manager/textureLoadManager.js +97 -97
  58. package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +106 -102
  59. package/dist/lib-cjs/api/manager/variantInstanceManager.js +292 -284
  60. package/dist/lib-cjs/api/manager/variantInstanceManager.js.map +1 -1
  61. package/dist/lib-cjs/api/store/specStorage.d.ts +32 -32
  62. package/dist/lib-cjs/api/store/specStorage.js +65 -65
  63. package/dist/lib-cjs/api/util/babylonHelper.d.ts +235 -235
  64. package/dist/lib-cjs/api/util/babylonHelper.js +753 -753
  65. package/dist/lib-cjs/api/util/globalTypes.d.ts +441 -436
  66. package/dist/lib-cjs/api/util/globalTypes.js +1 -1
  67. package/dist/lib-cjs/api/util/resourceHelper.d.ts +58 -58
  68. package/dist/lib-cjs/api/util/resourceHelper.js +203 -203
  69. package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +44 -44
  70. package/dist/lib-cjs/api/util/sceneLoaderHelper.js +175 -175
  71. package/dist/lib-cjs/api/util/stringHelper.d.ts +13 -13
  72. package/dist/lib-cjs/api/util/stringHelper.js +32 -32
  73. package/dist/lib-cjs/api/util/structureHelper.d.ts +9 -9
  74. package/dist/lib-cjs/api/util/structureHelper.js +57 -48
  75. package/dist/lib-cjs/api/util/structureHelper.js.map +1 -1
  76. package/dist/lib-cjs/buildinfo.json +3 -3
  77. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  78. package/dist/lib-cjs/index.d.ts +54 -53
  79. package/dist/lib-cjs/index.js +117 -114
  80. package/dist/lib-cjs/index.js.map +1 -1
  81. package/package.json +81 -81
  82. package/src/api/classes/animationInterface.ts +10 -10
  83. package/src/api/classes/dottedPath.ts +181 -181
  84. package/src/api/classes/element.ts +733 -731
  85. package/src/api/classes/event.ts +457 -452
  86. package/src/api/classes/eventBroadcaster.ts +52 -52
  87. package/src/api/classes/fuzzyMap.ts +21 -21
  88. package/src/api/classes/parameter.ts +561 -554
  89. package/src/api/classes/parameterObservable.ts +73 -73
  90. package/src/api/classes/parameterizable.ts +87 -87
  91. package/src/api/classes/placementAnimation.ts +162 -162
  92. package/src/api/classes/variant.ts +949 -933
  93. package/src/api/classes/variantInstance.ts +123 -123
  94. package/src/api/classes/variantParameterizable.ts +83 -85
  95. package/src/api/classes/viewer.ts +760 -743
  96. package/src/api/classes/viewerError.ts +63 -0
  97. package/src/api/classes/viewerLight.ts +339 -339
  98. package/src/api/internal/debugViewer.ts +90 -90
  99. package/src/api/internal/lensRendering.ts +9 -9
  100. package/src/api/internal/sceneSetup.ts +205 -205
  101. package/src/api/manager/animationManager.ts +143 -143
  102. package/src/api/manager/gltfExportManager.ts +237 -236
  103. package/src/api/manager/sceneManager.ts +134 -136
  104. package/src/api/manager/tagManager.ts +477 -451
  105. package/src/api/manager/textureLoadManager.ts +95 -95
  106. package/src/api/manager/variantInstanceManager.ts +309 -297
  107. package/src/api/store/specStorage.ts +68 -68
  108. package/src/api/util/babylonHelper.ts +823 -823
  109. package/src/api/util/globalTypes.ts +508 -503
  110. package/src/api/util/resourceHelper.ts +191 -191
  111. package/src/api/util/sceneLoaderHelper.ts +170 -170
  112. package/src/api/util/stringHelper.ts +30 -30
  113. package/src/api/util/structureHelper.ts +58 -49
  114. package/src/buildinfo.json +3 -3
  115. package/src/dev.ts +62 -62
  116. package/src/index.ts +103 -100
  117. package/src/types.d.ts +38 -38
@@ -1,89 +1,87 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.VariantParameterizable = void 0;
13
- const dottedPath_1 = require("./../classes/dottedPath");
14
- const event_1 = require("./../classes/event");
15
- const parameterizable_1 = require("./../classes/parameterizable");
16
- const resourceHelper_1 = require("./../util/resourceHelper");
17
- const stringHelper_1 = require("./../util/stringHelper");
18
- const lodash_es_1 = require("lodash-es");
19
- class VariantParameterizable extends parameterizable_1.Parameterizable {
20
- constructor(variant, name) {
21
- super();
22
- this.variant = variant;
23
- this.name = name;
24
- this._parameterObservers = new Map();
25
- }
26
- /**
27
- * Gets the inherited parameters from the {@link Variant} with cleaned {@link Parameterizable} prefix.
28
- */
29
- get inheritedParameters() {
30
- const parameterBag = {};
31
- for (const parameter in this.variant.inheritedParameters) {
32
- const dpp = dottedPath_1.DottedPath.create(parameter);
33
- if (dpp.parts.length !== 1) {
34
- continue;
35
- }
36
- parameterBag[parameter] = this.variant.inheritedParameters[parameter];
37
- }
38
- for (const parameter in this.variant.inheritedParameters) {
39
- const dpp = dottedPath_1.DottedPath.create(parameter);
40
- if (dpp.firstPart !== this.name) {
41
- continue;
42
- }
43
- dpp.shiftPart();
44
- parameterBag[dpp.path] = this.variant.inheritedParameters[parameter];
45
- }
46
- return parameterBag;
47
- }
48
- /**
49
- * Places the given {@link ParameterBag} in the {@link VariantParameterizable}'s parameters, replaces all patterns in
50
- * the {@link StructureJson} and broadcasts all {@link ParameterObserver}s.
51
- */
52
- commitParameters(parameters) {
53
- return __awaiter(this, void 0, void 0, function* () {
54
- if (!parameters) {
55
- parameters = {};
56
- }
57
- const oldParameters = (0, lodash_es_1.cloneDeep)(this.parameters);
58
- (0, lodash_es_1.merge)(this.parameters, parameters);
59
- // handle parameter observers
60
- let observerPromises = [];
61
- for (const parameter in this.parameters) {
62
- const oldParameterValue = oldParameters[parameter];
63
- const newParameterValue = this.parameters[parameter];
64
- this.variant.assertParameter(this.variant.inheritedParameterDeclaration, parameter, newParameterValue);
65
- if (oldParameterValue === newParameterValue) {
66
- continue;
67
- }
68
- // parameter changed
69
- const parameterObservers = (0, resourceHelper_1.mergeMaps)(this._parameterObservers, this.parameterObservers);
70
- if (parameterObservers.has(parameter)) {
71
- const observers = parameterObservers.get(parameter);
72
- observerPromises = (0, lodash_es_1.concat)(observerPromises, observers.map(observer => {
73
- const observerResult = observer(this, oldParameterValue, newParameterValue);
74
- const observerPromise = Promise.resolve(observerResult);
75
- observerPromise.then(() => {
76
- const clsName = (0, stringHelper_1.camelToSnakeCase)(this.constructor.name).toUpperCase();
77
- this.broadcastEvent((0, lodash_es_1.get)(event_1.Event, clsName + '_PARAMETER_COMMITTED'), this, parameter, oldParameterValue, newParameterValue);
78
- });
79
- return observerPromise;
80
- }));
81
- }
82
- }
83
- yield Promise.all(observerPromises);
84
- return this;
85
- });
86
- }
87
- }
88
- exports.VariantParameterizable = VariantParameterizable;
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.VariantParameterizable = void 0;
13
+ const dottedPath_1 = require("./../classes/dottedPath");
14
+ const event_1 = require("./../classes/event");
15
+ const parameterizable_1 = require("./../classes/parameterizable");
16
+ const resourceHelper_1 = require("./../util/resourceHelper");
17
+ const stringHelper_1 = require("./../util/stringHelper");
18
+ const lodash_es_1 = require("lodash-es");
19
+ class VariantParameterizable extends parameterizable_1.Parameterizable {
20
+ constructor(variant, name) {
21
+ super();
22
+ this.variant = variant;
23
+ this.name = name;
24
+ this._parameterObservers = new Map();
25
+ }
26
+ /**
27
+ * Gets the inherited parameters from the {@link Variant} with cleaned {@link Parameterizable} prefix.
28
+ */
29
+ get inheritedParameters() {
30
+ const parameterBag = {};
31
+ for (const parameter in this.variant.inheritedParameters) {
32
+ const dpp = dottedPath_1.DottedPath.create(parameter);
33
+ if (dpp.parts.length !== 1) {
34
+ continue;
35
+ }
36
+ parameterBag[parameter] = this.variant.inheritedParameters[parameter];
37
+ }
38
+ for (const parameter in this.variant.inheritedParameters) {
39
+ const dpp = dottedPath_1.DottedPath.create(parameter);
40
+ if (dpp.firstPart !== this.name) {
41
+ continue;
42
+ }
43
+ dpp.shiftPart();
44
+ parameterBag[dpp.path] = this.variant.inheritedParameters[parameter];
45
+ }
46
+ return parameterBag;
47
+ }
48
+ /**
49
+ * Places the given {@link ParameterBag} in the {@link VariantParameterizable}'s parameters, replaces all patterns in
50
+ * the {@link StructureJson} and broadcasts all {@link ParameterObserver}s.
51
+ */
52
+ commitParameters(parameters) {
53
+ return __awaiter(this, void 0, void 0, function* () {
54
+ if (!parameters) {
55
+ parameters = {};
56
+ }
57
+ const oldParameters = (0, lodash_es_1.cloneDeep)(this.parameters);
58
+ (0, lodash_es_1.merge)(this.parameters, parameters);
59
+ // handle parameter observers
60
+ let observerPromises = [];
61
+ for (const parameter in this.parameters) {
62
+ const oldParameterValue = oldParameters[parameter];
63
+ const newParameterValue = this.parameters[parameter];
64
+ this.variant.assertParameter(this.variant.inheritedParameterDeclaration, parameter, newParameterValue);
65
+ if (oldParameterValue === newParameterValue) {
66
+ continue;
67
+ }
68
+ // parameter changed
69
+ const parameterObservers = (0, resourceHelper_1.mergeMaps)(this._parameterObservers, this.parameterObservers);
70
+ if (parameterObservers.has(parameter)) {
71
+ const observers = parameterObservers.get(parameter);
72
+ observerPromises = (0, lodash_es_1.concat)(observerPromises, observers.map(observer => {
73
+ const observerPromise = observer(this, oldParameterValue, newParameterValue);
74
+ return Promise.resolve(observerPromise).then(() => {
75
+ const clsName = (0, stringHelper_1.camelToSnakeCase)(this.constructor.name).toUpperCase();
76
+ this.broadcastEvent((0, lodash_es_1.get)(event_1.Event, clsName + '_PARAMETER_COMMITTED'), this, parameter, oldParameterValue, newParameterValue);
77
+ });
78
+ }));
79
+ }
80
+ }
81
+ yield Promise.all(observerPromises);
82
+ return this;
83
+ });
84
+ }
85
+ }
86
+ exports.VariantParameterizable = VariantParameterizable;
89
87
  //# sourceMappingURL=variantParameterizable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"variantParameterizable.js","sourceRoot":"","sources":["../../../../src/api/classes/variantParameterizable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"variantParameterizable.js","sourceRoot":"","sources":["../../../../src/api/classes/variantParameterizable.ts"],"names":[],"mappings":"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"}
@@ -1,199 +1,204 @@
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 { AnimationInterface } from './animationInterface';
7
- import { EventBroadcaster } from './eventBroadcaster';
8
- import { VariantInstance } from './variantInstance';
9
- import { Engine } from '@babylonjs/core/Engines/engine';
10
- import { Mesh } from '@babylonjs/core/Meshes/mesh';
11
- import { Scene } from '@babylonjs/core/scene';
12
- /**
13
- * The main exposed object. This is the entry point into the application
14
- *
15
- * ```js
16
- * const canvas = document.getElementById( 'babylon-canvas' );
17
- * const viewer = Viewer( canvas, '/path/to/index.json' );
18
- * ```
19
- * The class does nothing on its own and needs to {@link bootstrap}
20
- */
21
- export declare class Viewer extends EventBroadcaster {
22
- readonly canvas: HTMLCanvasElement;
23
- protected structureJson: string | StructureJson;
24
- protected _scene: Scene | null;
25
- protected _animationManager: AnimationManager | null;
26
- protected _sceneManager: SceneManager | null;
27
- protected _tagManager: TagManager | null;
28
- protected _gltfExportManager: GltfExportManager | null;
29
- protected _variantInstances: VariantInstanceManager | null;
30
- protected _cloneMaterialsOnMutation: boolean;
31
- protected _isRenderLoopPaused: boolean;
32
- protected _inspectorLoaded: boolean;
33
- protected _nodeNamingStrategyHandler: NodeNamingStrategyHandler | null;
34
- static version: string;
35
- private static readonly _autofocusConstants;
36
- /**
37
- * Help function for automatically creating a valid Spec from a list of variant names and dedicated GLB/babylon URLs.
38
- * This data is most likely coming from babylon assets from the Combeenation system but other sources are also valid.
39
- */
40
- static generateSpec(genData: SpecGenerationData[]): AutoSpecStructureJson;
41
- /**
42
- * Constructor
43
- */
44
- constructor(canvas: HTMLCanvasElement, structureJson: string | StructureJson);
45
- /**
46
- * Gets the Babylon.js Scene that is attached to the instance.
47
- *
48
- * @throws Error if the `scene` has not been initialized.
49
- */
50
- get scene(): Scene;
51
- /**
52
- * Gets the {@link SceneManager} attached to the viewer.
53
- *
54
- * @throws Error if the {@link SceneManager} has not been initialized.
55
- */
56
- get sceneManager(): SceneManager;
57
- /**
58
- * Gets the {@link GltfExportManager} attached to the viewer.
59
- *
60
- * @throws Error if the {@link GltfExportManager} has not been initialized.
61
- */
62
- get gltfExportManager(): GltfExportManager;
63
- /**
64
- * Gets the Babylon.js Engine that is attached to the viewer.
65
- */
66
- get engine(): Engine;
67
- /**
68
- * Gets the {@link VariantInstanceManager} attached to the viewer.
69
- *
70
- * @throws Error if the {@link VariantInstanceManager} has not been initialized.
71
- */
72
- get variantInstances(): VariantInstanceManager;
73
- /**
74
- * Gets the {@link AnimationManager} attached to the viewer.
75
- *
76
- * @throws Error if the {@link AnimationManager} has not been initialized.
77
- */
78
- get animationManager(): AnimationManager;
79
- get tagManager(): TagManager;
80
- /**
81
- * Gets the `cloneMaterialsOnMutation` flag, as defined in the spec
82
- */
83
- get cloneMaterialsOnMutation(): boolean;
84
- /**
85
- * Gets the strategy handler for naming cloned nodes.
86
- */
87
- get nodeNamingStrategyHandler(): NodeNamingStrategyHandler;
88
- /**
89
- * Sets the strategy handler for naming cloned nodes.\
90
- * Check the docs of the tag managers [renaming](https://3dviewer.docs.combeenation.com/pages/documentation/Tag-Manager.html#uniqueness-of-node-and-tag-names)
91
- * chapter for further details.
92
- */
93
- set nodeNamingStrategyHandler(value: NodeNamingStrategyHandler);
94
- /**
95
- * Starts the application. This will
96
- * * load the given "index" JSON file
97
- * * setup the scene with the "scene" JSON file
98
- * * create an (optional) default setup with different variant settings
99
- * * sets up resizing by attaching a debounced version of {@link resize}
100
- *
101
- * @throws Error if any of the files is not found/valid
102
- *
103
- * @emits {@link Event.BOOTSTRAP_START}
104
- * @emits {@link Event.BOOTSTRAP_END}
105
- */
106
- bootstrap(tagManagerParameterValues: TagManagerParameterValue[]): Promise<Viewer>;
107
- /**
108
- * Enables the Babylon.js [Inspector](https://doc.babylonjs.com/toolsAndResources/tools/inspector).\
109
- * Due to the additional size of the inspector, the CDN version is used instead of shipping the required code with
110
- * the viewer.\
111
- * This means that the code will be downloaded only when needed and calling `enableDebugLayer` can take a little while
112
- * depending on your internet connection etc.
113
- */
114
- enableDebugLayer(options?: IInspectorOptions): Promise<void>;
115
- /**
116
- * Destroys all registered {@link VariantInstance}s that are registered
117
- */
118
- destroyVariantInstances(): Viewer;
119
- /**
120
- * Trigger a resize event for the `Engine`
121
- */
122
- resize(): Viewer;
123
- /**
124
- * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
125
- * {@link DottedPath}s.
126
- */
127
- getNode(variantInstanceName: string, elementDottedPath: DottedPathArgument, nodeDottedPath: DottedPathArgument): Promise<TransformNode>;
128
- /**
129
- * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
130
- * {@link DottedPath}s.
131
- */
132
- getMesh(variantInstanceName: string, elementDottedPath: DottedPathArgument, meshDottedPath: DottedPathArgument): Promise<Mesh | null>;
133
- /**
134
- * Switches the camera
135
- *
136
- * @emits {@link Event.CAMERA_SWITCHED}
137
- */
138
- switchCamera(newCamera: string, reset?: boolean): Viewer;
139
- /**
140
- * Moves or animates the active camera to given `placement`.
141
- */
142
- moveActiveCameraTo(placement: string | PlacementDefinition, animation?: string | AnimationDefinition): Promise<AnimationInterface>;
143
- /**
144
- * Takes a sceenshot the the current scene. The result is a string containing a base64 encoded image
145
- */
146
- screenshot(settings?: ScreenshotSettings): Promise<string>;
147
- /**
148
- * Checks whether the browser is capable of handling XR.
149
- */
150
- isBrowserARCapable(): Promise<boolean>;
151
- /**
152
- * Calculates the bounding box from all visible meshes on the scene.
153
- */
154
- calculateBoundingBox(excludeGeometry?: ExcludedGeometryList): Promise<Mesh>;
155
- /**
156
- * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
157
- */
158
- autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
159
- /**
160
- * Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
161
- * environment
162
- */
163
- reset(tagManagerParameterValues: TagManagerParameterValue[]): Promise<Viewer>;
164
- /**
165
- * Destroys
166
- *
167
- * * all {@link VariantInstance}s using {@link destroyVariantInstances}
168
- * * calling `dispose` on the `Engine` and `Scene`
169
- */
170
- destroy(): Viewer;
171
- /**
172
- * Show coordinate system with given dimension (for debugging purpose).
173
- */
174
- showWorldCoordinates(dimension: number): void;
175
- /**
176
- * Pause render loop.
177
- */
178
- pauseRendering(): void;
179
- /**
180
- * Resume render loop when paused.
181
- */
182
- resumeRendering(): void;
183
- /**
184
- * @emits {@link Event.SCENE_PROCESSING_START}
185
- * @emits {@link Event.SCENE_PROCESSING_END}
186
- */
187
- protected initScene(): Promise<Scene>;
188
- /**
189
- * Register custom file loader for babylon files which adds "missing-material" metadata to meshes which reference
190
- * materials that are not present in the `materials` section of the given babylon file.
191
- *
192
- * Required for babylon files & materials loaded from "Combeenation configurator assets".
193
- */
194
- protected initCbnBabylonLoaderPlugin(): void;
195
- /**
196
- * Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
197
- */
198
- protected createVariantInstances(): Promise<VariantInstance[]>;
199
- }
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 { AnimationInterface } from './animationInterface';
7
+ import { EventBroadcaster } from './eventBroadcaster';
8
+ import { VariantInstance } from './variantInstance';
9
+ import { Engine } from '@babylonjs/core/Engines/engine';
10
+ import { Mesh } from '@babylonjs/core/Meshes/mesh';
11
+ import { Scene } from '@babylonjs/core/scene';
12
+ /**
13
+ * The main exposed object. This is the entry point into the application
14
+ *
15
+ * ```js
16
+ * const canvas = document.getElementById( 'babylon-canvas' );
17
+ * const viewer = Viewer( canvas, '/path/to/index.json' );
18
+ * ```
19
+ * The class does nothing on its own and needs to {@link bootstrap}
20
+ */
21
+ export declare class Viewer extends EventBroadcaster {
22
+ readonly canvas: HTMLCanvasElement;
23
+ protected structureJson: string | StructureJson;
24
+ static readonly BOUNDING_BOX_NAME = "__bounding_box__";
25
+ protected _scene: Scene | null;
26
+ protected _animationManager: AnimationManager | null;
27
+ protected _sceneManager: SceneManager | null;
28
+ protected _tagManager: TagManager | null;
29
+ protected _gltfExportManager: GltfExportManager | null;
30
+ protected _variantInstances: VariantInstanceManager | null;
31
+ protected _cloneMaterialsOnMutation: boolean;
32
+ protected _isRenderLoopPaused: boolean;
33
+ protected _inspectorLoaded: 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
+ * Constructor
44
+ */
45
+ constructor(canvas: HTMLCanvasElement, structureJson: string | StructureJson);
46
+ /**
47
+ * Gets the Babylon.js Scene that is attached to the instance.
48
+ *
49
+ * @throws Error if the `scene` has not been initialized.
50
+ */
51
+ get scene(): Scene;
52
+ /**
53
+ * Gets the {@link SceneManager} attached to the viewer.
54
+ *
55
+ * @throws Error if the {@link SceneManager} has not been initialized.
56
+ */
57
+ get sceneManager(): SceneManager;
58
+ /**
59
+ * Gets the {@link GltfExportManager} attached to the viewer.
60
+ *
61
+ * @throws Error if the {@link GltfExportManager} has not been initialized.
62
+ */
63
+ get gltfExportManager(): GltfExportManager;
64
+ /**
65
+ * Gets the Babylon.js Engine that is attached to the viewer.
66
+ */
67
+ get engine(): Engine;
68
+ /**
69
+ * Gets the {@link VariantInstanceManager} attached to the viewer.
70
+ *
71
+ * @throws Error if the {@link VariantInstanceManager} has not been initialized.
72
+ */
73
+ get variantInstances(): VariantInstanceManager;
74
+ /**
75
+ * Gets the {@link AnimationManager} attached to the viewer.
76
+ *
77
+ * @throws Error if the {@link AnimationManager} has not been initialized.
78
+ */
79
+ get animationManager(): AnimationManager;
80
+ get tagManager(): TagManager;
81
+ /**
82
+ * Gets the `cloneMaterialsOnMutation` flag, as defined in the spec
83
+ */
84
+ get cloneMaterialsOnMutation(): boolean;
85
+ /**
86
+ * Gets the strategy handler for naming cloned nodes.
87
+ */
88
+ get nodeNamingStrategyHandler(): NodeNamingStrategyHandler;
89
+ /**
90
+ * Sets the strategy handler for naming cloned nodes.\
91
+ * Check the docs of the tag managers [renaming](https://3dviewer.docs.combeenation.com/pages/documentation/Tag-Manager.html#uniqueness-of-node-and-tag-names)
92
+ * chapter for further details.
93
+ */
94
+ set nodeNamingStrategyHandler(value: NodeNamingStrategyHandler);
95
+ /**
96
+ * Starts the application. This will
97
+ * * load the given "index" JSON file
98
+ * * setup the scene with the "scene" JSON file
99
+ * * create an (optional) default setup with different variant settings
100
+ * * sets up resizing by attaching a debounced version of {@link resize}
101
+ *
102
+ * @throws Error if any of the files is not found/valid
103
+ *
104
+ * @emits {@link Event.BOOTSTRAP_START}
105
+ * @emits {@link Event.BOOTSTRAP_END}
106
+ */
107
+ bootstrap(tagManagerParameterValues?: TagManagerParameterValue[]): Promise<Viewer>;
108
+ /**
109
+ * Enables the Babylon.js [Inspector](https://doc.babylonjs.com/toolsAndResources/tools/inspector).\
110
+ * Due to the additional size of the inspector, the CDN version is used instead of shipping the required code with
111
+ * the viewer.\
112
+ * This means that the code will be downloaded only when needed and calling `enableDebugLayer` can take a little while
113
+ * depending on your internet connection etc.
114
+ */
115
+ enableDebugLayer(options?: IInspectorOptions): Promise<void>;
116
+ /**
117
+ * Destroys all registered {@link VariantInstance}s that are registered
118
+ */
119
+ destroyVariantInstances(): Viewer;
120
+ /**
121
+ * Trigger a resize event for the `Engine`
122
+ */
123
+ resize(): Viewer;
124
+ /**
125
+ * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
126
+ * {@link DottedPath}s.
127
+ */
128
+ getNode(variantInstanceName: string, elementDottedPath: DottedPathArgument, nodeDottedPath: DottedPathArgument): Promise<TransformNode>;
129
+ /**
130
+ * A convenience method for directly getting a Node from a {@link VariantInstance} and an {@link Element} by its
131
+ * {@link DottedPath}s.
132
+ */
133
+ getMesh(variantInstanceName: string, elementDottedPath: DottedPathArgument, meshDottedPath: DottedPathArgument): Promise<Mesh | null>;
134
+ /**
135
+ * Switches the camera
136
+ *
137
+ * @emits {@link Event.CAMERA_SWITCHED}
138
+ */
139
+ switchCamera(newCamera: string, reset?: boolean): Viewer;
140
+ /**
141
+ * Moves or animates the active camera to given `placement`.
142
+ */
143
+ moveActiveCameraTo(placement: string | PlacementDefinition, animation?: string | AnimationDefinition): Promise<AnimationInterface>;
144
+ /**
145
+ * Takes a sceenshot the the current scene. The result is a string containing a base64 encoded image
146
+ */
147
+ screenshot(settings?: ScreenshotSettings): Promise<string>;
148
+ /**
149
+ * Checks whether the browser is capable of handling XR.
150
+ */
151
+ isBrowserARCapable(): Promise<boolean>;
152
+ /**
153
+ * Calculates the bounding box from all visible meshes on the scene.
154
+ */
155
+ calculateBoundingBox(excludeGeometry?: ExcludedGeometryList): Promise<Mesh>;
156
+ /**
157
+ * Focuses the camera to see every visible mesh in scene and tries to optimize wheel precision and panning
158
+ */
159
+ autofocusActiveCamera(settings?: AutofocusSettings): Promise<void>;
160
+ /**
161
+ * Resets everything by calling {@link destroy} to clear all references and {@link bootstrap} to setup a clean
162
+ * environment
163
+ */
164
+ reset(tagManagerParameterValues: TagManagerParameterValue[]): Promise<Viewer>;
165
+ /**
166
+ * Destroys
167
+ *
168
+ * * all {@link VariantInstance}s using {@link destroyVariantInstances}
169
+ * * calling `dispose` on the `Engine` and `Scene`
170
+ */
171
+ destroy(): Viewer;
172
+ /**
173
+ * Show coordinate system with given dimension (for debugging purpose).
174
+ */
175
+ showWorldCoordinates(dimension: number): void;
176
+ /**
177
+ * Pause render loop.
178
+ */
179
+ pauseRendering(): void;
180
+ /**
181
+ * Resume render loop when paused.
182
+ */
183
+ resumeRendering(): void;
184
+ /**
185
+ * Prints defined instances from SetupJson to the console.
186
+ */
187
+ protected printInstanceDefinitions(setupJson: SetupJson): void;
188
+ /**
189
+ * @emits {@link Event.SCENE_PROCESSING_START}
190
+ * @emits {@link Event.SCENE_PROCESSING_END}
191
+ */
192
+ protected initScene(): Promise<Scene>;
193
+ /**
194
+ * Register custom file loader for babylon files which adds "missing-material" metadata to meshes which reference
195
+ * materials that are not present in the `materials` section of the given babylon file.
196
+ *
197
+ * Required for babylon files & materials loaded from "Combeenation configurator assets".
198
+ */
199
+ protected initCbnBabylonLoaderPlugin(): void;
200
+ /**
201
+ * Batch creation of multiple {@link VariantInstance} objects with a {@link SetupJson} object passed
202
+ */
203
+ protected createVariantInstances(tagManagerParameterValues?: TagManagerParameterValue[]): Promise<VariantInstance[]>;
204
+ }