@combeenation/3d-viewer 12.4.1 → 12.4.3
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 +9 -9
- 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 +153 -153
- package/dist/lib-cjs/api/classes/element.js +702 -702
- package/dist/lib-cjs/api/classes/event.d.ts +401 -401
- package/dist/lib-cjs/api/classes/event.js +424 -424
- 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/fuzzyMap.d.ts +7 -7
- package/dist/lib-cjs/api/classes/fuzzyMap.js +21 -21
- package/dist/lib-cjs/api/classes/parameter.d.ts +410 -410
- package/dist/lib-cjs/api/classes/parameter.js +642 -642
- package/dist/lib-cjs/api/classes/parameterObservable.d.ts +36 -36
- package/dist/lib-cjs/api/classes/parameterObservable.js +72 -72
- 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 +261 -261
- package/dist/lib-cjs/api/classes/variant.js +872 -872
- package/dist/lib-cjs/api/classes/variantInstance.d.ts +53 -53
- package/dist/lib-cjs/api/classes/variantInstance.js +125 -125
- package/dist/lib-cjs/api/classes/variantParameterizable.d.ts +17 -17
- package/dist/lib-cjs/api/classes/variantParameterizable.js +86 -86
- package/dist/lib-cjs/api/classes/viewer.d.ts +215 -215
- package/dist/lib-cjs/api/classes/viewer.js +708 -708
- package/dist/lib-cjs/api/classes/viewerError.d.ts +43 -43
- package/dist/lib-cjs/api/classes/viewerError.js +55 -55
- package/dist/lib-cjs/api/classes/viewerLight.d.ts +66 -66
- package/dist/lib-cjs/api/classes/viewerLight.js +344 -344
- 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 +227 -227
- 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 +80 -80
- package/dist/lib-cjs/api/manager/gltfExportManager.js +300 -299
- package/dist/lib-cjs/api/manager/gltfExportManager.js.map +1 -1
- package/dist/lib-cjs/api/manager/sceneManager.d.ts +33 -33
- package/dist/lib-cjs/api/manager/sceneManager.js +128 -128
- package/dist/lib-cjs/api/manager/tagManager.d.ts +118 -118
- package/dist/lib-cjs/api/manager/tagManager.js +530 -530
- package/dist/lib-cjs/api/manager/textureLoadManager.d.ts +22 -22
- package/dist/lib-cjs/api/manager/textureLoadManager.js +107 -107
- package/dist/lib-cjs/api/manager/variantInstanceManager.d.ts +106 -106
- package/dist/lib-cjs/api/manager/variantInstanceManager.js +290 -290
- package/dist/lib-cjs/api/store/specStorage.d.ts +32 -32
- package/dist/lib-cjs/api/store/specStorage.js +65 -65
- package/dist/lib-cjs/api/util/babylonHelper.d.ts +238 -238
- package/dist/lib-cjs/api/util/babylonHelper.js +825 -825
- package/dist/lib-cjs/api/util/debugHelper.d.ts +9 -9
- package/dist/lib-cjs/api/util/debugHelper.js +93 -93
- package/dist/lib-cjs/api/util/deviceHelper.d.ts +9 -9
- package/dist/lib-cjs/api/util/deviceHelper.js +28 -28
- package/dist/lib-cjs/api/util/geometryHelper.d.ts +17 -17
- package/dist/lib-cjs/api/util/geometryHelper.js +112 -112
- package/dist/lib-cjs/api/util/globalTypes.d.ts +490 -490
- 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 +214 -214
- package/dist/lib-cjs/api/util/sceneLoaderHelper.d.ts +58 -58
- package/dist/lib-cjs/api/util/sceneLoaderHelper.js +228 -228
- package/dist/lib-cjs/api/util/stringHelper.d.ts +13 -13
- package/dist/lib-cjs/api/util/stringHelper.js +32 -32
- package/dist/lib-cjs/api/util/structureHelper.d.ts +9 -9
- package/dist/lib-cjs/api/util/structureHelper.js +57 -57
- package/dist/lib-cjs/buildinfo.json +3 -3
- package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
- package/dist/lib-cjs/index.d.ts +63 -63
- package/dist/lib-cjs/index.js +128 -128
- package/package.json +93 -92
- package/src/api/classes/animationInterface.ts +10 -10
- package/src/api/classes/dottedPath.ts +181 -181
- package/src/api/classes/element.ts +766 -766
- package/src/api/classes/event.ts +457 -457
- package/src/api/classes/eventBroadcaster.ts +52 -52
- package/src/api/classes/fuzzyMap.ts +21 -21
- package/src/api/classes/parameter.ts +686 -686
- package/src/api/classes/parameterObservable.ts +73 -73
- package/src/api/classes/parameterizable.ts +87 -87
- package/src/api/classes/placementAnimation.ts +162 -162
- package/src/api/classes/variant.ts +965 -965
- package/src/api/classes/variantInstance.ts +123 -123
- package/src/api/classes/variantParameterizable.ts +83 -83
- package/src/api/classes/viewer.ts +751 -751
- package/src/api/classes/viewerError.ts +63 -63
- package/src/api/classes/viewerLight.ts +335 -335
- package/src/api/internal/debugViewer.ts +90 -90
- package/src/api/internal/lensRendering.ts +9 -9
- package/src/api/internal/sceneSetup.ts +208 -208
- package/src/api/manager/animationManager.ts +143 -143
- package/src/api/manager/gltfExportManager.ts +337 -334
- package/src/api/manager/sceneManager.ts +134 -134
- package/src/api/manager/tagManager.ts +572 -572
- package/src/api/manager/textureLoadManager.ts +107 -107
- package/src/api/manager/variantInstanceManager.ts +306 -306
- package/src/api/store/specStorage.ts +68 -68
- package/src/api/util/babylonHelper.ts +915 -915
- package/src/api/util/debugHelper.ts +121 -121
- package/src/api/util/deviceHelper.ts +31 -31
- package/src/api/util/geometryHelper.ts +142 -142
- package/src/api/util/globalTypes.ts +566 -566
- package/src/api/util/resourceHelper.ts +201 -201
- package/src/api/util/sceneLoaderHelper.ts +247 -247
- package/src/api/util/stringHelper.ts +30 -30
- package/src/api/util/structureHelper.ts +62 -62
- package/src/buildinfo.json +3 -3
- package/src/dev.ts +70 -70
- package/src/index.ts +116 -116
- package/src/types.d.ts +49 -49
|
@@ -1,66 +1,66 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SpecStorage = void 0;
|
|
4
|
-
const lodash_es_1 = require("lodash-es");
|
|
5
|
-
class SpecStorage {
|
|
6
|
-
/**
|
|
7
|
-
* Constructor.
|
|
8
|
-
*/
|
|
9
|
-
constructor(spec) {
|
|
10
|
-
this.spec = spec;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Creates {@link SpecStorage} from spec.
|
|
14
|
-
*/
|
|
15
|
-
static createFromSpec(structureJson) {
|
|
16
|
-
if (this.instance) {
|
|
17
|
-
throw new Error(`SpecStorage has already been created.`);
|
|
18
|
-
}
|
|
19
|
-
return (this.instance = new this(structureJson));
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Gets the {@link SpecStorage} instance.
|
|
23
|
-
*/
|
|
24
|
-
static getInstance() {
|
|
25
|
-
if (!this.instance || !this.instance.spec) {
|
|
26
|
-
throw new Error(`SpecStore has not been properly created.`);
|
|
27
|
-
}
|
|
28
|
-
return this.instance;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Gets the spec from the {@link SpecStorage}.
|
|
32
|
-
*/
|
|
33
|
-
static getSpec() {
|
|
34
|
-
return this.getInstance().spec;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Destroys the current instance to allow reinstantiating the SpecStorage.
|
|
38
|
-
*/
|
|
39
|
-
static destroy() {
|
|
40
|
-
this.instance = undefined;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Gets spec from key.
|
|
44
|
-
*/
|
|
45
|
-
static get(key) {
|
|
46
|
-
if (!this.instance || !this.instance.spec) {
|
|
47
|
-
throw new Error(`SpecStore has not been properly created.`);
|
|
48
|
-
}
|
|
49
|
-
if (key) {
|
|
50
|
-
return (0, lodash_es_1.get)(this.instance.spec, key);
|
|
51
|
-
}
|
|
52
|
-
return this.instance.spec;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Sets value for spec for given key.
|
|
56
|
-
*/
|
|
57
|
-
static set(key, value) {
|
|
58
|
-
if (!this.instance || !this.instance.spec) {
|
|
59
|
-
throw new Error(`SpecStore has not been properly created.`);
|
|
60
|
-
}
|
|
61
|
-
(0, lodash_es_1.set)(this.instance.spec, key, value);
|
|
62
|
-
return SpecStorage;
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
exports.SpecStorage = SpecStorage;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SpecStorage = void 0;
|
|
4
|
+
const lodash_es_1 = require("lodash-es");
|
|
5
|
+
class SpecStorage {
|
|
6
|
+
/**
|
|
7
|
+
* Constructor.
|
|
8
|
+
*/
|
|
9
|
+
constructor(spec) {
|
|
10
|
+
this.spec = spec;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates {@link SpecStorage} from spec.
|
|
14
|
+
*/
|
|
15
|
+
static createFromSpec(structureJson) {
|
|
16
|
+
if (this.instance) {
|
|
17
|
+
throw new Error(`SpecStorage has already been created.`);
|
|
18
|
+
}
|
|
19
|
+
return (this.instance = new this(structureJson));
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Gets the {@link SpecStorage} instance.
|
|
23
|
+
*/
|
|
24
|
+
static getInstance() {
|
|
25
|
+
if (!this.instance || !this.instance.spec) {
|
|
26
|
+
throw new Error(`SpecStore has not been properly created.`);
|
|
27
|
+
}
|
|
28
|
+
return this.instance;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Gets the spec from the {@link SpecStorage}.
|
|
32
|
+
*/
|
|
33
|
+
static getSpec() {
|
|
34
|
+
return this.getInstance().spec;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Destroys the current instance to allow reinstantiating the SpecStorage.
|
|
38
|
+
*/
|
|
39
|
+
static destroy() {
|
|
40
|
+
this.instance = undefined;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Gets spec from key.
|
|
44
|
+
*/
|
|
45
|
+
static get(key) {
|
|
46
|
+
if (!this.instance || !this.instance.spec) {
|
|
47
|
+
throw new Error(`SpecStore has not been properly created.`);
|
|
48
|
+
}
|
|
49
|
+
if (key) {
|
|
50
|
+
return (0, lodash_es_1.get)(this.instance.spec, key);
|
|
51
|
+
}
|
|
52
|
+
return this.instance.spec;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Sets value for spec for given key.
|
|
56
|
+
*/
|
|
57
|
+
static set(key, value) {
|
|
58
|
+
if (!this.instance || !this.instance.spec) {
|
|
59
|
+
throw new Error(`SpecStore has not been properly created.`);
|
|
60
|
+
}
|
|
61
|
+
(0, lodash_es_1.set)(this.instance.spec, key, value);
|
|
62
|
+
return SpecStorage;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.SpecStorage = SpecStorage;
|
|
66
66
|
//# sourceMappingURL=specStorage.js.map
|
|
@@ -1,238 +1,238 @@
|
|
|
1
|
-
import { DottedPath } from '../classes/dottedPath';
|
|
2
|
-
import { HighlightLayer } from '@babylonjs/core/Layers/highlightLayer';
|
|
3
|
-
import { ShadowGenerator } from '@babylonjs/core/Lights/Shadows/shadowGenerator';
|
|
4
|
-
import { BaseTexture } from '@babylonjs/core/Materials/Textures/baseTexture';
|
|
5
|
-
import { Texture } from '@babylonjs/core/Materials/Textures/texture';
|
|
6
|
-
import { Material } from '@babylonjs/core/Materials/material';
|
|
7
|
-
import { Color3 } from '@babylonjs/core/Maths/math.color';
|
|
8
|
-
import { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh';
|
|
9
|
-
import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
|
|
10
|
-
import { Observable } from '@babylonjs/core/Misc/observable';
|
|
11
|
-
import { Node } from '@babylonjs/core/node';
|
|
12
|
-
import { Scene } from '@babylonjs/core/scene';
|
|
13
|
-
declare const backgroundDomeName = "BackgroundDome_ViewerGenerated";
|
|
14
|
-
declare const envHelperMetadataName = "viewerEnvHelper";
|
|
15
|
-
/**
|
|
16
|
-
* @param node
|
|
17
|
-
* @return Node
|
|
18
|
-
*/
|
|
19
|
-
declare const getRootNode: (node: Node) => Node;
|
|
20
|
-
/**
|
|
21
|
-
* @param nodes
|
|
22
|
-
* @param predicate
|
|
23
|
-
* @return Map<DottedPath, T>
|
|
24
|
-
*/
|
|
25
|
-
declare const mapToDottedNodes: <T>(nodes: Node[], predicate?: ((node: Node) => boolean) | undefined) => Map<DottedPath, T>;
|
|
26
|
-
/**
|
|
27
|
-
* @param node
|
|
28
|
-
* @return DottedPath
|
|
29
|
-
*/
|
|
30
|
-
declare const getDottedPathForNode: (node: Node) => DottedPath;
|
|
31
|
-
/**
|
|
32
|
-
* @param node
|
|
33
|
-
* @param nodeNamingStrategy
|
|
34
|
-
* @param predicate
|
|
35
|
-
* @param deep
|
|
36
|
-
* @return TransformNode | null
|
|
37
|
-
*/
|
|
38
|
-
declare const cloneTransformNode: (node: TransformNode, nodeNamingStrategy: NodeNamingStrategy, predicate?: ((node: TransformNode) => boolean) | undefined, deep?: boolean) => TransformNode | null;
|
|
39
|
-
/**
|
|
40
|
-
* @param node
|
|
41
|
-
*/
|
|
42
|
-
declare const cloneNodeWithParents: (node: Node | null) => Node | null;
|
|
43
|
-
/**
|
|
44
|
-
* @param node
|
|
45
|
-
* @param deep
|
|
46
|
-
* @param prefix
|
|
47
|
-
* @return TransformNode
|
|
48
|
-
*/
|
|
49
|
-
declare const cloneTransformNodeMaterial: (node: TransformNode, prefix?: DottedPathArgument, deep?: boolean) => TransformNode;
|
|
50
|
-
/**
|
|
51
|
-
* @param object
|
|
52
|
-
* @param deep
|
|
53
|
-
* @param metadata
|
|
54
|
-
*/
|
|
55
|
-
declare const injectMetadata: (object: Node | Material | BaseTexture, metadata: {}, deep?: boolean) => void;
|
|
56
|
-
/**
|
|
57
|
-
* @param node
|
|
58
|
-
* @param assertCallable
|
|
59
|
-
* @param callableParameters
|
|
60
|
-
* @param deep
|
|
61
|
-
*/
|
|
62
|
-
declare const assertTransformNode: (node: TransformNode, assertCallable: (node: TransformNode, ...args: any[]) => void, callableParameters?: any[], deep?: boolean) => void;
|
|
63
|
-
/**
|
|
64
|
-
* @param node
|
|
65
|
-
* @param parameter
|
|
66
|
-
*/
|
|
67
|
-
declare const assertMeshCapability: (node: TransformNode, parameter: string) => void;
|
|
68
|
-
/**
|
|
69
|
-
* @param node
|
|
70
|
-
* @param deep
|
|
71
|
-
*/
|
|
72
|
-
declare const activateTransformNode: (node: TransformNode, deep?: boolean) => void;
|
|
73
|
-
/**
|
|
74
|
-
* @param node
|
|
75
|
-
* @param deep
|
|
76
|
-
*/
|
|
77
|
-
declare const deactivateTransformNode: (node: TransformNode, deep?: boolean) => void;
|
|
78
|
-
/**
|
|
79
|
-
* @param node
|
|
80
|
-
*/
|
|
81
|
-
declare const enableNodeWithParents: (node: Node) => void;
|
|
82
|
-
/**
|
|
83
|
-
* @param node
|
|
84
|
-
*/
|
|
85
|
-
declare const disableNodeWithParents: (node: Node) => void;
|
|
86
|
-
/**
|
|
87
|
-
* Applies a {@link TransformationDefinition} consecutively to ensure dependencies in positioning etc.
|
|
88
|
-
* @param node
|
|
89
|
-
* @param transformation
|
|
90
|
-
*/
|
|
91
|
-
declare const transformTransformNode: (node: TransformNode, transformation: TransformationDefinition) => void;
|
|
92
|
-
/**
|
|
93
|
-
* Apply changes of environment (background texture, etc.) consecutively in order to avoid dependency related issues.
|
|
94
|
-
* @param scene
|
|
95
|
-
* @param envDef
|
|
96
|
-
*/
|
|
97
|
-
declare const changeEnvironment: (scene: Scene, envDef: EnvironmentDefinition) => void;
|
|
98
|
-
/**
|
|
99
|
-
* Sets a material by a given material id as material property on the given node.
|
|
100
|
-
*
|
|
101
|
-
* If the material is not already available in the scene, the viewer tries to create a material based on a Combeenation
|
|
102
|
-
* [material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset).
|
|
103
|
-
* This of course only works if the viewer is used inside a Combeenation configurator.
|
|
104
|
-
*
|
|
105
|
-
* Furthermore this function also defers the material creation if the node is not visible yet to improve network &
|
|
106
|
-
* viewer bootstrap performance as textures are automatically being lazy loaded only when they are actually visible in
|
|
107
|
-
* the scene.
|
|
108
|
-
*
|
|
109
|
-
* Finally the material will not be applied before all its textures have been loaded. In this way "flickering" effects
|
|
110
|
-
* will be avoided, since the material would be incomplete without its loaded textures.
|
|
111
|
-
*/
|
|
112
|
-
declare const setMaterial: (node: TransformNode, materialId: string, deep?: boolean, variant?: Variant) => void;
|
|
113
|
-
/**
|
|
114
|
-
* Gets the Material either from the given {@link Variant}, the given scene or tries to create it from an Combeenation
|
|
115
|
-
* material asset when inside a Combeenation configurator.
|
|
116
|
-
*/
|
|
117
|
-
declare const getOrCreateMaterial: (scene: Scene, materialId: string, variant?: Variant) => Promise<Material>;
|
|
118
|
-
/**
|
|
119
|
-
* Waits until the materials textures are loaded and shaders are compiled.
|
|
120
|
-
* Then sets the material on the node if there is no newer "set material" request
|
|
121
|
-
*/
|
|
122
|
-
declare const applyMaterial: (material: Material, node: AbstractMesh) => Promise<void>;
|
|
123
|
-
/**
|
|
124
|
-
* !!! Warning !!!
|
|
125
|
-
* This function is not public API. Whilst it can help solving certain problems, it only works reliably in well defined
|
|
126
|
-
* situations and can cause unwanted side effects under some conditions. Use carefully at your own risk!
|
|
127
|
-
*
|
|
128
|
-
* See https://combeenation.myjetbrains.com/youtrack/issue/CB-5906 for further details regarding this warning.
|
|
129
|
-
*
|
|
130
|
-
* Set material of an instanced meshes source mesh.
|
|
131
|
-
* Changes the material of all instanced meshes which have the same source mesh.
|
|
132
|
-
*
|
|
133
|
-
* @param node
|
|
134
|
-
* @param material
|
|
135
|
-
* @param deep
|
|
136
|
-
*
|
|
137
|
-
* @ignore
|
|
138
|
-
*/
|
|
139
|
-
declare const setSourceNodeMaterial: (node: TransformNode, material: Material, deep?: boolean) => void;
|
|
140
|
-
/**
|
|
141
|
-
* @param node
|
|
142
|
-
* @param color
|
|
143
|
-
* @param deep
|
|
144
|
-
*/
|
|
145
|
-
declare const setMaterialColor: (node: TransformNode, color: Color3, deep?: boolean) => void;
|
|
146
|
-
/**
|
|
147
|
-
* @param node
|
|
148
|
-
* @param texture
|
|
149
|
-
* @param deep
|
|
150
|
-
*/
|
|
151
|
-
declare const setMaterialTexture: (node: TransformNode, texture: Texture, deep?: boolean) => void;
|
|
152
|
-
/**
|
|
153
|
-
* @param node
|
|
154
|
-
* @param metallness
|
|
155
|
-
* @param deep
|
|
156
|
-
*/
|
|
157
|
-
declare const setMaterialMetallness: (node: TransformNode, metallness: number, deep?: boolean) => void;
|
|
158
|
-
/**
|
|
159
|
-
* @param node
|
|
160
|
-
* @param roughness
|
|
161
|
-
* @param deep
|
|
162
|
-
*/
|
|
163
|
-
declare const setMaterialRoughness: (node: TransformNode, roughness: number, deep?: boolean) => void;
|
|
164
|
-
/**
|
|
165
|
-
* @param node
|
|
166
|
-
* @param layer
|
|
167
|
-
* @param color
|
|
168
|
-
* @param deep
|
|
169
|
-
*/
|
|
170
|
-
declare const addToHighlightLayer: (layer: HighlightLayer, color: Color3, node: TransformNode, deep?: boolean) => void;
|
|
171
|
-
/**
|
|
172
|
-
* @param node
|
|
173
|
-
* @param layer
|
|
174
|
-
* @param deep
|
|
175
|
-
*/
|
|
176
|
-
declare const removeFromHighlightLayer: (layer: HighlightLayer, node: TransformNode, deep?: boolean) => void;
|
|
177
|
-
/**
|
|
178
|
-
* @param node
|
|
179
|
-
* @param receiveShadows
|
|
180
|
-
* @param deep
|
|
181
|
-
*/
|
|
182
|
-
declare const setReceiveShadows: (node: TransformNode, receiveShadows: boolean, deep?: boolean) => void;
|
|
183
|
-
/**
|
|
184
|
-
* @param node
|
|
185
|
-
* @param generator
|
|
186
|
-
* @param deep
|
|
187
|
-
*/
|
|
188
|
-
declare const addToShadowGenerator: (generator: ShadowGenerator, node: TransformNode, deep?: boolean) => void;
|
|
189
|
-
/**
|
|
190
|
-
* @param node
|
|
191
|
-
* @param generator
|
|
192
|
-
* @param deep
|
|
193
|
-
*/
|
|
194
|
-
declare const removeFromShadowGenerator: (generator: ShadowGenerator, node: TransformNode, deep?: boolean) => void;
|
|
195
|
-
/**
|
|
196
|
-
* https://forum.babylonjs.com/t/get-mesh-bounding-box-position-and-size-in-2d-screen-coordinates/1058/3
|
|
197
|
-
* @param mesh
|
|
198
|
-
* @param scene
|
|
199
|
-
* @param canvas
|
|
200
|
-
*/
|
|
201
|
-
declare const getClientRectFromMesh: (mesh: AbstractMesh, scene: Scene, canvas: HTMLCanvasElement) => ClientRect;
|
|
202
|
-
declare type LoadableBaseTexture = BaseTexture & {
|
|
203
|
-
url: string;
|
|
204
|
-
onLoadObservable: Observable<BaseTexture>;
|
|
205
|
-
};
|
|
206
|
-
/**
|
|
207
|
-
* This type guard checks whether the given `BaseTextures` is any of its subtypes which comes with an url and
|
|
208
|
-
* `onLoadObservable`.
|
|
209
|
-
*
|
|
210
|
-
* !!! Timing of when this function is called is important !!!
|
|
211
|
-
* See the following for more details: https://forum.babylonjs.com/t/basetexture-whenallready-returns-too-early/34501/6
|
|
212
|
-
*/
|
|
213
|
-
declare const isLoadableTexture: (texture: BaseTexture) => texture is LoadableBaseTexture;
|
|
214
|
-
/**
|
|
215
|
-
* @param objects
|
|
216
|
-
* @param tagMapping
|
|
217
|
-
*/
|
|
218
|
-
declare const mapTags: (objects: object[], tagMapping: TagMapping) => string[];
|
|
219
|
-
/**
|
|
220
|
-
* Gets an array of ids for nodeIds that exist in both TransformNode arrays.
|
|
221
|
-
* @param nodes1
|
|
222
|
-
* @param nodes2
|
|
223
|
-
* @param predicate
|
|
224
|
-
*/
|
|
225
|
-
declare const intersectingNodeNames: (nodes1: Node[], nodes2: Node[], predicate?: ((node: Node) => boolean) | undefined) => string[];
|
|
226
|
-
/**
|
|
227
|
-
* Gets an array of ids for duplicate nodeIds in given node array.
|
|
228
|
-
* @param nodes
|
|
229
|
-
* @param predicate
|
|
230
|
-
*/
|
|
231
|
-
declare const duplicateNodeNames: (nodes: Node[], predicate?: ((node: Node) => boolean) | undefined) => string[];
|
|
232
|
-
/**
|
|
233
|
-
* Reports duplicate nodeIds.
|
|
234
|
-
* @param nodeNames
|
|
235
|
-
*/
|
|
236
|
-
declare const reportDuplicateNodeNames: (nodeNames: string[]) => void;
|
|
237
|
-
declare const drawPaintableOnMaterial: (material: Material, imageSource: HTMLImageElement, scene: Scene, options?: PaintableOptions) => void;
|
|
238
|
-
export { getRootNode, isLoadableTexture, mapToDottedNodes, getDottedPathForNode, cloneTransformNode, cloneNodeWithParents, cloneTransformNodeMaterial, getOrCreateMaterial, applyMaterial, injectMetadata, assertTransformNode, assertMeshCapability, activateTransformNode, deactivateTransformNode, enableNodeWithParents, disableNodeWithParents, transformTransformNode, setMaterial, setSourceNodeMaterial, setMaterialColor, setMaterialTexture, setMaterialMetallness, setMaterialRoughness, addToHighlightLayer, removeFromHighlightLayer, setReceiveShadows, addToShadowGenerator, removeFromShadowGenerator, getClientRectFromMesh, changeEnvironment, backgroundDomeName, envHelperMetadataName, mapTags, intersectingNodeNames, duplicateNodeNames, reportDuplicateNodeNames, drawPaintableOnMaterial, };
|
|
1
|
+
import { DottedPath } from '../classes/dottedPath';
|
|
2
|
+
import { HighlightLayer } from '@babylonjs/core/Layers/highlightLayer';
|
|
3
|
+
import { ShadowGenerator } from '@babylonjs/core/Lights/Shadows/shadowGenerator';
|
|
4
|
+
import { BaseTexture } from '@babylonjs/core/Materials/Textures/baseTexture';
|
|
5
|
+
import { Texture } from '@babylonjs/core/Materials/Textures/texture';
|
|
6
|
+
import { Material } from '@babylonjs/core/Materials/material';
|
|
7
|
+
import { Color3 } from '@babylonjs/core/Maths/math.color';
|
|
8
|
+
import { AbstractMesh } from '@babylonjs/core/Meshes/abstractMesh';
|
|
9
|
+
import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
|
|
10
|
+
import { Observable } from '@babylonjs/core/Misc/observable';
|
|
11
|
+
import { Node } from '@babylonjs/core/node';
|
|
12
|
+
import { Scene } from '@babylonjs/core/scene';
|
|
13
|
+
declare const backgroundDomeName = "BackgroundDome_ViewerGenerated";
|
|
14
|
+
declare const envHelperMetadataName = "viewerEnvHelper";
|
|
15
|
+
/**
|
|
16
|
+
* @param node
|
|
17
|
+
* @return Node
|
|
18
|
+
*/
|
|
19
|
+
declare const getRootNode: (node: Node) => Node;
|
|
20
|
+
/**
|
|
21
|
+
* @param nodes
|
|
22
|
+
* @param predicate
|
|
23
|
+
* @return Map<DottedPath, T>
|
|
24
|
+
*/
|
|
25
|
+
declare const mapToDottedNodes: <T>(nodes: Node[], predicate?: ((node: Node) => boolean) | undefined) => Map<DottedPath, T>;
|
|
26
|
+
/**
|
|
27
|
+
* @param node
|
|
28
|
+
* @return DottedPath
|
|
29
|
+
*/
|
|
30
|
+
declare const getDottedPathForNode: (node: Node) => DottedPath;
|
|
31
|
+
/**
|
|
32
|
+
* @param node
|
|
33
|
+
* @param nodeNamingStrategy
|
|
34
|
+
* @param predicate
|
|
35
|
+
* @param deep
|
|
36
|
+
* @return TransformNode | null
|
|
37
|
+
*/
|
|
38
|
+
declare const cloneTransformNode: (node: TransformNode, nodeNamingStrategy: NodeNamingStrategy, predicate?: ((node: TransformNode) => boolean) | undefined, deep?: boolean) => TransformNode | null;
|
|
39
|
+
/**
|
|
40
|
+
* @param node
|
|
41
|
+
*/
|
|
42
|
+
declare const cloneNodeWithParents: (node: Node | null) => Node | null;
|
|
43
|
+
/**
|
|
44
|
+
* @param node
|
|
45
|
+
* @param deep
|
|
46
|
+
* @param prefix
|
|
47
|
+
* @return TransformNode
|
|
48
|
+
*/
|
|
49
|
+
declare const cloneTransformNodeMaterial: (node: TransformNode, prefix?: DottedPathArgument, deep?: boolean) => TransformNode;
|
|
50
|
+
/**
|
|
51
|
+
* @param object
|
|
52
|
+
* @param deep
|
|
53
|
+
* @param metadata
|
|
54
|
+
*/
|
|
55
|
+
declare const injectMetadata: (object: Node | Material | BaseTexture, metadata: {}, deep?: boolean) => void;
|
|
56
|
+
/**
|
|
57
|
+
* @param node
|
|
58
|
+
* @param assertCallable
|
|
59
|
+
* @param callableParameters
|
|
60
|
+
* @param deep
|
|
61
|
+
*/
|
|
62
|
+
declare const assertTransformNode: (node: TransformNode, assertCallable: (node: TransformNode, ...args: any[]) => void, callableParameters?: any[], deep?: boolean) => void;
|
|
63
|
+
/**
|
|
64
|
+
* @param node
|
|
65
|
+
* @param parameter
|
|
66
|
+
*/
|
|
67
|
+
declare const assertMeshCapability: (node: TransformNode, parameter: string) => void;
|
|
68
|
+
/**
|
|
69
|
+
* @param node
|
|
70
|
+
* @param deep
|
|
71
|
+
*/
|
|
72
|
+
declare const activateTransformNode: (node: TransformNode, deep?: boolean) => void;
|
|
73
|
+
/**
|
|
74
|
+
* @param node
|
|
75
|
+
* @param deep
|
|
76
|
+
*/
|
|
77
|
+
declare const deactivateTransformNode: (node: TransformNode, deep?: boolean) => void;
|
|
78
|
+
/**
|
|
79
|
+
* @param node
|
|
80
|
+
*/
|
|
81
|
+
declare const enableNodeWithParents: (node: Node) => void;
|
|
82
|
+
/**
|
|
83
|
+
* @param node
|
|
84
|
+
*/
|
|
85
|
+
declare const disableNodeWithParents: (node: Node) => void;
|
|
86
|
+
/**
|
|
87
|
+
* Applies a {@link TransformationDefinition} consecutively to ensure dependencies in positioning etc.
|
|
88
|
+
* @param node
|
|
89
|
+
* @param transformation
|
|
90
|
+
*/
|
|
91
|
+
declare const transformTransformNode: (node: TransformNode, transformation: TransformationDefinition) => void;
|
|
92
|
+
/**
|
|
93
|
+
* Apply changes of environment (background texture, etc.) consecutively in order to avoid dependency related issues.
|
|
94
|
+
* @param scene
|
|
95
|
+
* @param envDef
|
|
96
|
+
*/
|
|
97
|
+
declare const changeEnvironment: (scene: Scene, envDef: EnvironmentDefinition) => void;
|
|
98
|
+
/**
|
|
99
|
+
* Sets a material by a given material id as material property on the given node.
|
|
100
|
+
*
|
|
101
|
+
* If the material is not already available in the scene, the viewer tries to create a material based on a Combeenation
|
|
102
|
+
* [material asset](https://docs.combeenation.com/docs/howto-create-and-use-babylon-and-material-asset).
|
|
103
|
+
* This of course only works if the viewer is used inside a Combeenation configurator.
|
|
104
|
+
*
|
|
105
|
+
* Furthermore this function also defers the material creation if the node is not visible yet to improve network &
|
|
106
|
+
* viewer bootstrap performance as textures are automatically being lazy loaded only when they are actually visible in
|
|
107
|
+
* the scene.
|
|
108
|
+
*
|
|
109
|
+
* Finally the material will not be applied before all its textures have been loaded. In this way "flickering" effects
|
|
110
|
+
* will be avoided, since the material would be incomplete without its loaded textures.
|
|
111
|
+
*/
|
|
112
|
+
declare const setMaterial: (node: TransformNode, materialId: string, deep?: boolean, variant?: Variant) => void;
|
|
113
|
+
/**
|
|
114
|
+
* Gets the Material either from the given {@link Variant}, the given scene or tries to create it from an Combeenation
|
|
115
|
+
* material asset when inside a Combeenation configurator.
|
|
116
|
+
*/
|
|
117
|
+
declare const getOrCreateMaterial: (scene: Scene, materialId: string, variant?: Variant) => Promise<Material>;
|
|
118
|
+
/**
|
|
119
|
+
* Waits until the materials textures are loaded and shaders are compiled.
|
|
120
|
+
* Then sets the material on the node if there is no newer "set material" request
|
|
121
|
+
*/
|
|
122
|
+
declare const applyMaterial: (material: Material, node: AbstractMesh) => Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* !!! Warning !!!
|
|
125
|
+
* This function is not public API. Whilst it can help solving certain problems, it only works reliably in well defined
|
|
126
|
+
* situations and can cause unwanted side effects under some conditions. Use carefully at your own risk!
|
|
127
|
+
*
|
|
128
|
+
* See https://combeenation.myjetbrains.com/youtrack/issue/CB-5906 for further details regarding this warning.
|
|
129
|
+
*
|
|
130
|
+
* Set material of an instanced meshes source mesh.
|
|
131
|
+
* Changes the material of all instanced meshes which have the same source mesh.
|
|
132
|
+
*
|
|
133
|
+
* @param node
|
|
134
|
+
* @param material
|
|
135
|
+
* @param deep
|
|
136
|
+
*
|
|
137
|
+
* @ignore
|
|
138
|
+
*/
|
|
139
|
+
declare const setSourceNodeMaterial: (node: TransformNode, material: Material, deep?: boolean) => void;
|
|
140
|
+
/**
|
|
141
|
+
* @param node
|
|
142
|
+
* @param color
|
|
143
|
+
* @param deep
|
|
144
|
+
*/
|
|
145
|
+
declare const setMaterialColor: (node: TransformNode, color: Color3, deep?: boolean) => void;
|
|
146
|
+
/**
|
|
147
|
+
* @param node
|
|
148
|
+
* @param texture
|
|
149
|
+
* @param deep
|
|
150
|
+
*/
|
|
151
|
+
declare const setMaterialTexture: (node: TransformNode, texture: Texture, deep?: boolean) => void;
|
|
152
|
+
/**
|
|
153
|
+
* @param node
|
|
154
|
+
* @param metallness
|
|
155
|
+
* @param deep
|
|
156
|
+
*/
|
|
157
|
+
declare const setMaterialMetallness: (node: TransformNode, metallness: number, deep?: boolean) => void;
|
|
158
|
+
/**
|
|
159
|
+
* @param node
|
|
160
|
+
* @param roughness
|
|
161
|
+
* @param deep
|
|
162
|
+
*/
|
|
163
|
+
declare const setMaterialRoughness: (node: TransformNode, roughness: number, deep?: boolean) => void;
|
|
164
|
+
/**
|
|
165
|
+
* @param node
|
|
166
|
+
* @param layer
|
|
167
|
+
* @param color
|
|
168
|
+
* @param deep
|
|
169
|
+
*/
|
|
170
|
+
declare const addToHighlightLayer: (layer: HighlightLayer, color: Color3, node: TransformNode, deep?: boolean) => void;
|
|
171
|
+
/**
|
|
172
|
+
* @param node
|
|
173
|
+
* @param layer
|
|
174
|
+
* @param deep
|
|
175
|
+
*/
|
|
176
|
+
declare const removeFromHighlightLayer: (layer: HighlightLayer, node: TransformNode, deep?: boolean) => void;
|
|
177
|
+
/**
|
|
178
|
+
* @param node
|
|
179
|
+
* @param receiveShadows
|
|
180
|
+
* @param deep
|
|
181
|
+
*/
|
|
182
|
+
declare const setReceiveShadows: (node: TransformNode, receiveShadows: boolean, deep?: boolean) => void;
|
|
183
|
+
/**
|
|
184
|
+
* @param node
|
|
185
|
+
* @param generator
|
|
186
|
+
* @param deep
|
|
187
|
+
*/
|
|
188
|
+
declare const addToShadowGenerator: (generator: ShadowGenerator, node: TransformNode, deep?: boolean) => void;
|
|
189
|
+
/**
|
|
190
|
+
* @param node
|
|
191
|
+
* @param generator
|
|
192
|
+
* @param deep
|
|
193
|
+
*/
|
|
194
|
+
declare const removeFromShadowGenerator: (generator: ShadowGenerator, node: TransformNode, deep?: boolean) => void;
|
|
195
|
+
/**
|
|
196
|
+
* https://forum.babylonjs.com/t/get-mesh-bounding-box-position-and-size-in-2d-screen-coordinates/1058/3
|
|
197
|
+
* @param mesh
|
|
198
|
+
* @param scene
|
|
199
|
+
* @param canvas
|
|
200
|
+
*/
|
|
201
|
+
declare const getClientRectFromMesh: (mesh: AbstractMesh, scene: Scene, canvas: HTMLCanvasElement) => ClientRect;
|
|
202
|
+
declare type LoadableBaseTexture = BaseTexture & {
|
|
203
|
+
url: string;
|
|
204
|
+
onLoadObservable: Observable<BaseTexture>;
|
|
205
|
+
};
|
|
206
|
+
/**
|
|
207
|
+
* This type guard checks whether the given `BaseTextures` is any of its subtypes which comes with an url and
|
|
208
|
+
* `onLoadObservable`.
|
|
209
|
+
*
|
|
210
|
+
* !!! Timing of when this function is called is important !!!
|
|
211
|
+
* See the following for more details: https://forum.babylonjs.com/t/basetexture-whenallready-returns-too-early/34501/6
|
|
212
|
+
*/
|
|
213
|
+
declare const isLoadableTexture: (texture: BaseTexture) => texture is LoadableBaseTexture;
|
|
214
|
+
/**
|
|
215
|
+
* @param objects
|
|
216
|
+
* @param tagMapping
|
|
217
|
+
*/
|
|
218
|
+
declare const mapTags: (objects: object[], tagMapping: TagMapping) => string[];
|
|
219
|
+
/**
|
|
220
|
+
* Gets an array of ids for nodeIds that exist in both TransformNode arrays.
|
|
221
|
+
* @param nodes1
|
|
222
|
+
* @param nodes2
|
|
223
|
+
* @param predicate
|
|
224
|
+
*/
|
|
225
|
+
declare const intersectingNodeNames: (nodes1: Node[], nodes2: Node[], predicate?: ((node: Node) => boolean) | undefined) => string[];
|
|
226
|
+
/**
|
|
227
|
+
* Gets an array of ids for duplicate nodeIds in given node array.
|
|
228
|
+
* @param nodes
|
|
229
|
+
* @param predicate
|
|
230
|
+
*/
|
|
231
|
+
declare const duplicateNodeNames: (nodes: Node[], predicate?: ((node: Node) => boolean) | undefined) => string[];
|
|
232
|
+
/**
|
|
233
|
+
* Reports duplicate nodeIds.
|
|
234
|
+
* @param nodeNames
|
|
235
|
+
*/
|
|
236
|
+
declare const reportDuplicateNodeNames: (nodeNames: string[]) => void;
|
|
237
|
+
declare const drawPaintableOnMaterial: (material: Material, imageSource: HTMLImageElement, scene: Scene, options?: PaintableOptions) => void;
|
|
238
|
+
export { getRootNode, isLoadableTexture, mapToDottedNodes, getDottedPathForNode, cloneTransformNode, cloneNodeWithParents, cloneTransformNodeMaterial, getOrCreateMaterial, applyMaterial, injectMetadata, assertTransformNode, assertMeshCapability, activateTransformNode, deactivateTransformNode, enableNodeWithParents, disableNodeWithParents, transformTransformNode, setMaterial, setSourceNodeMaterial, setMaterialColor, setMaterialTexture, setMaterialMetallness, setMaterialRoughness, addToHighlightLayer, removeFromHighlightLayer, setReceiveShadows, addToShadowGenerator, removeFromShadowGenerator, getClientRectFromMesh, changeEnvironment, backgroundDomeName, envHelperMetadataName, mapTags, intersectingNodeNames, duplicateNodeNames, reportDuplicateNodeNames, drawPaintableOnMaterial, };
|