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