@combeenation/3d-viewer 14.0.0 → 14.0.1-rc1

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 (65) hide show
  1. package/README.md +9 -9
  2. package/dist/lib-cjs/buildinfo.json +3 -3
  3. package/dist/lib-cjs/commonjs.tsconfig.tsbuildinfo +1 -1
  4. package/dist/lib-cjs/index.d.ts +62 -62
  5. package/dist/lib-cjs/index.js +94 -94
  6. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.d.ts +10 -10
  7. package/dist/lib-cjs/internal/cbn-custom-babylon-loader-plugin.js +131 -131
  8. package/dist/lib-cjs/internal/cloning-helper.d.ts +19 -19
  9. package/dist/lib-cjs/internal/cloning-helper.js +163 -163
  10. package/dist/lib-cjs/internal/device-helper.d.ts +9 -9
  11. package/dist/lib-cjs/internal/device-helper.js +24 -24
  12. package/dist/lib-cjs/internal/geometry-helper.d.ts +21 -21
  13. package/dist/lib-cjs/internal/geometry-helper.js +145 -145
  14. package/dist/lib-cjs/internal/metadata-helper.d.ts +26 -26
  15. package/dist/lib-cjs/internal/metadata-helper.js +50 -50
  16. package/dist/lib-cjs/internal/paintable-helper.d.ts +40 -40
  17. package/dist/lib-cjs/internal/paintable-helper.js +286 -286
  18. package/dist/lib-cjs/internal/tags-helper.d.ts +12 -12
  19. package/dist/lib-cjs/internal/tags-helper.js +37 -37
  20. package/dist/lib-cjs/manager/camera-manager.d.ts +110 -110
  21. package/dist/lib-cjs/manager/camera-manager.js +206 -206
  22. package/dist/lib-cjs/manager/debug-manager.d.ts +60 -60
  23. package/dist/lib-cjs/manager/debug-manager.js +217 -217
  24. package/dist/lib-cjs/manager/event-manager.d.ts +52 -52
  25. package/dist/lib-cjs/manager/event-manager.js +71 -71
  26. package/dist/lib-cjs/manager/gltf-export-manager.d.ts +84 -75
  27. package/dist/lib-cjs/manager/gltf-export-manager.js +290 -278
  28. package/dist/lib-cjs/manager/gltf-export-manager.js.map +1 -1
  29. package/dist/lib-cjs/manager/material-manager.d.ts +35 -35
  30. package/dist/lib-cjs/manager/material-manager.js +125 -125
  31. package/dist/lib-cjs/manager/model-manager.d.ts +145 -145
  32. package/dist/lib-cjs/manager/model-manager.js +382 -382
  33. package/dist/lib-cjs/manager/parameter-manager.d.ts +210 -210
  34. package/dist/lib-cjs/manager/parameter-manager.js +514 -514
  35. package/dist/lib-cjs/manager/scene-manager.d.ts +45 -45
  36. package/dist/lib-cjs/manager/scene-manager.js +64 -64
  37. package/dist/lib-cjs/manager/texture-manager.d.ts +12 -12
  38. package/dist/lib-cjs/manager/texture-manager.js +43 -43
  39. package/dist/lib-cjs/viewer-error.d.ts +48 -48
  40. package/dist/lib-cjs/viewer-error.js +60 -60
  41. package/dist/lib-cjs/viewer.d.ts +115 -115
  42. package/dist/lib-cjs/viewer.js +217 -217
  43. package/package.json +91 -91
  44. package/src/buildinfo.json +3 -3
  45. package/src/dev.ts +47 -47
  46. package/src/global-types.d.ts +39 -39
  47. package/src/index.ts +81 -81
  48. package/src/internal/cbn-custom-babylon-loader-plugin.ts +159 -159
  49. package/src/internal/cloning-helper.ts +225 -225
  50. package/src/internal/device-helper.ts +25 -25
  51. package/src/internal/geometry-helper.ts +181 -181
  52. package/src/internal/metadata-helper.ts +63 -63
  53. package/src/internal/paintable-helper.ts +310 -310
  54. package/src/internal/tags-helper.ts +41 -41
  55. package/src/manager/camera-manager.ts +365 -365
  56. package/src/manager/debug-manager.ts +245 -245
  57. package/src/manager/event-manager.ts +72 -72
  58. package/src/manager/gltf-export-manager.ts +357 -341
  59. package/src/manager/material-manager.ts +135 -135
  60. package/src/manager/model-manager.ts +458 -458
  61. package/src/manager/parameter-manager.ts +652 -652
  62. package/src/manager/scene-manager.ts +101 -101
  63. package/src/manager/texture-manager.ts +32 -32
  64. package/src/viewer-error.ts +68 -68
  65. package/src/viewer.ts +290 -290
package/src/dev.ts CHANGED
@@ -1,47 +1,47 @@
1
- import { Viewer } from '.';
2
- import {
3
- afterViewerSetup,
4
- createUIelements,
5
- getDefaultSceneSettings,
6
- getMaterial,
7
- getViewerSettings,
8
- } from '../assets/index';
9
- import { mockMaterials } from '../assets/mock-materials';
10
- import { set } from 'lodash-es';
11
-
12
- document.addEventListener('DOMContentLoaded', main);
13
-
14
- window.Cbn = {
15
- Assets: {
16
- async getMaterial(materialId: string): Promise<object> {
17
- //! this creates a new function on the object that uses the imported function of the same name..
18
- const material = await getMaterial(materialId);
19
- if (material) return material;
20
-
21
- // Fallback to random mock material
22
- return mockMaterials[Math.floor(Math.random() * mockMaterials.length)];
23
- },
24
- assertMaterialExists(materialId: string): boolean {
25
- return true;
26
- },
27
- },
28
- utils: {
29
- Viewer3dHelper: {
30
- getCfgrParentDomElementForInspector(): HTMLElement | undefined {
31
- // render in parent of viewer
32
- return document.querySelector<HTMLElement>('display-container') ?? undefined;
33
- },
34
- },
35
- },
36
- };
37
-
38
- async function main(): Promise<void> {
39
- const canvas = document.getElementById('babylon-canvas') as HTMLCanvasElement;
40
- const viewer = new Viewer(canvas, getViewerSettings(), getDefaultSceneSettings());
41
-
42
- await afterViewerSetup(viewer);
43
- await createUIelements(viewer);
44
-
45
- // "Export" for console testing...
46
- set(window, 'viewer', viewer);
47
- }
1
+ import { Viewer } from '.';
2
+ import {
3
+ afterViewerSetup,
4
+ createUIelements,
5
+ getDefaultSceneSettings,
6
+ getMaterial,
7
+ getViewerSettings,
8
+ } from '../assets/index';
9
+ import { mockMaterials } from '../assets/mock-materials';
10
+ import { set } from 'lodash-es';
11
+
12
+ document.addEventListener('DOMContentLoaded', main);
13
+
14
+ window.Cbn = {
15
+ Assets: {
16
+ async getMaterial(materialId: string): Promise<object> {
17
+ //! this creates a new function on the object that uses the imported function of the same name..
18
+ const material = await getMaterial(materialId);
19
+ if (material) return material;
20
+
21
+ // Fallback to random mock material
22
+ return mockMaterials[Math.floor(Math.random() * mockMaterials.length)];
23
+ },
24
+ assertMaterialExists(materialId: string): boolean {
25
+ return true;
26
+ },
27
+ },
28
+ utils: {
29
+ Viewer3dHelper: {
30
+ getCfgrParentDomElementForInspector(): HTMLElement | undefined {
31
+ // render in parent of viewer
32
+ return document.querySelector<HTMLElement>('display-container') ?? undefined;
33
+ },
34
+ },
35
+ },
36
+ };
37
+
38
+ async function main(): Promise<void> {
39
+ const canvas = document.getElementById('babylon-canvas') as HTMLCanvasElement;
40
+ const viewer = new Viewer(canvas, getViewerSettings(), getDefaultSceneSettings());
41
+
42
+ await afterViewerSetup(viewer);
43
+ await createUIelements(viewer);
44
+
45
+ // "Export" for console testing...
46
+ set(window, 'viewer', viewer);
47
+ }
@@ -1,39 +1,39 @@
1
- /**
2
- * Enhancement of Typescripts default `Partial` typing, which only creates shallow partials
3
- */
4
- type DeepPartial<T> = {
5
- [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
6
- };
7
-
8
- interface Window {
9
- Cbn:
10
- | undefined /* window.Cbn is only available when viewer runs inside Combeenation configurator */
11
- | {
12
- Assets: {
13
- /**
14
- * Retrieve material definition from configurator.
15
- * Implementation depends on the Combeenation environment the viewer is used in
16
- * - Configurator: Access pre-fetched material JSON objects from Cbn client => synchronous
17
- * - Asset Editor: Load content from material asset on demand => asynchronous!
18
- *
19
- * @return Undefined if no definition for the given material name exists, otherwise an "JSON object" which can
20
- * be passed to `BABYLON.Material.Parse` to create a runtime material object.
21
- */
22
- getMaterial(materialId: string): Promise<object | undefined>;
23
-
24
- /**
25
- * Checks if a definition for a given material name exists in the configurator and issues a warning if not
26
- */
27
- assertMaterialExists(materialId: string): boolean;
28
- };
29
- utils: {
30
- Viewer3dHelper: {
31
- /**
32
- * Returns parent DOM element of a Combeenation configurator, which can be used as root for the inspector.
33
- * Also adjusts styling of some configurator parent sub elements to fix the inspector layout.
34
- */
35
- getCfgrParentDomElementForInspector(): HTMLElement | undefined;
36
- };
37
- };
38
- };
39
- }
1
+ /**
2
+ * Enhancement of Typescripts default `Partial` typing, which only creates shallow partials
3
+ */
4
+ type DeepPartial<T> = {
5
+ [K in keyof T]?: T[K] extends object ? DeepPartial<T[K]> : T[K];
6
+ };
7
+
8
+ interface Window {
9
+ Cbn:
10
+ | undefined /* window.Cbn is only available when viewer runs inside Combeenation configurator */
11
+ | {
12
+ Assets: {
13
+ /**
14
+ * Retrieve material definition from configurator.
15
+ * Implementation depends on the Combeenation environment the viewer is used in
16
+ * - Configurator: Access pre-fetched material JSON objects from Cbn client => synchronous
17
+ * - Asset Editor: Load content from material asset on demand => asynchronous!
18
+ *
19
+ * @return Undefined if no definition for the given material name exists, otherwise an "JSON object" which can
20
+ * be passed to `BABYLON.Material.Parse` to create a runtime material object.
21
+ */
22
+ getMaterial(materialId: string): Promise<object | undefined>;
23
+
24
+ /**
25
+ * Checks if a definition for a given material name exists in the configurator and issues a warning if not
26
+ */
27
+ assertMaterialExists(materialId: string): boolean;
28
+ };
29
+ utils: {
30
+ Viewer3dHelper: {
31
+ /**
32
+ * Returns parent DOM element of a Combeenation configurator, which can be used as root for the inspector.
33
+ * Also adjusts styling of some configurator parent sub elements to fix the inspector layout.
34
+ */
35
+ getCfgrParentDomElementForInspector(): HTMLElement | undefined;
36
+ };
37
+ };
38
+ };
39
+ }
package/src/index.ts CHANGED
@@ -1,81 +1,81 @@
1
- /// <reference path="global-types.d.ts" />
2
- // Babylon.js extensions
3
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression';
4
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat';
5
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior';
6
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness';
7
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen';
8
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular';
9
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency';
10
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission';
11
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit';
12
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants';
13
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu';
14
- import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
15
- import '@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform';
16
-
17
- // Babylon.js modules
18
- // All used Babylyon.js modules should be re-exported here.
19
- // In this way consumers have access to all of them as well via an import of "@combeenation/3d-viewer" instead of having
20
- // to make single imports from "@babylonjs/..."
21
- // When using Babylon.js modules inside the viewer repo make sure to import from the viewer root as well.
22
- // E.g. `import { BaseTexture, Material, Node } from '../index';`
23
- export * from '@babylonjs/core/abstractScene';
24
- export * from '@babylonjs/core/Animations';
25
- export * from '@babylonjs/core/assetContainer';
26
- export * from '@babylonjs/core/Buffers';
27
- export * from '@babylonjs/core/Cameras/arcRotateCamera';
28
- export * from '@babylonjs/core/Cameras/camera';
29
- export * from '@babylonjs/core/Culling';
30
- export * from '@babylonjs/core/Debug/axesViewer';
31
- export * from '@babylonjs/core/Debug/debugLayer';
32
- export * from '@babylonjs/core/Engines/engine';
33
- export * from '@babylonjs/core/Engines/thinEngine';
34
- export * from '@babylonjs/core/Lights';
35
- export * from '@babylonjs/core/Loading';
36
- export * from '@babylonjs/core/Materials/material';
37
- export * from '@babylonjs/core/Materials/PBR';
38
- export * from '@babylonjs/core/Materials/standardMaterial';
39
- export * from '@babylonjs/core/Materials/Textures';
40
- export * from '@babylonjs/core/Maths';
41
- export * from '@babylonjs/core/Meshes/abstractMesh';
42
- export * from '@babylonjs/core/Meshes/geometry';
43
- export * from '@babylonjs/core/Meshes/instancedMesh';
44
- export * from '@babylonjs/core/Meshes/mesh';
45
- export * from '@babylonjs/core/Meshes/meshBuilder';
46
- export * from '@babylonjs/core/Meshes/transformNode';
47
- export * from '@babylonjs/core/Misc/interfaces/screenshotSize';
48
- export * from '@babylonjs/core/Misc/screenshotTools';
49
- export * from '@babylonjs/core/Morph';
50
- export * from '@babylonjs/core/node';
51
- export * from '@babylonjs/core/Rendering/utilityLayerRenderer';
52
- export * from '@babylonjs/core/scene';
53
- export * from '@babylonjs/core/types';
54
- export * from '@babylonjs/loaders/glTF/2.0/glTFLoader';
55
- export * from '@babylonjs/serializers/glTF/2.0/glTFSerializer';
56
-
57
- // Additional Babylon.js modules
58
- // These are not used in the "@combeenation/3d-viewer" repository directly, but required in consuming code for various
59
- // reasons
60
- // for checking camera collions with ground and wall meshes
61
- export * from '@babylonjs/core/Collisions';
62
- // for Scene.createDefaultEnvironment
63
- export * from '@babylonjs/core/Helpers/sceneHelpers';
64
- // support BackgroundMaterial on Combeenation platform
65
- export * from '@babylonjs/core/Materials/Background';
66
- // support NodeMaterial on Combeenation platform
67
- export * from '@babylonjs/core/Materials/Node';
68
-
69
- // Viewer modules
70
- // all viewer modules that are not located in "internal" should be exported from here
71
- export * from './viewer';
72
- export * from './viewer-error';
73
- export * from './manager/camera-manager';
74
- export * from './manager/debug-manager';
75
- export * from './manager/event-manager';
76
- export * from './manager/gltf-export-manager';
77
- export * from './manager/material-manager';
78
- export * from './manager/model-manager';
79
- export * from './manager/parameter-manager';
80
- export * from './manager/scene-manager';
81
- export * from './manager/texture-manager';
1
+ /// <reference path="global-types.d.ts" />
2
+ // Babylon.js extensions
3
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_draco_mesh_compression';
4
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_clearcoat';
5
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_ior';
6
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_pbrSpecularGlossiness';
7
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_sheen';
8
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_specular';
9
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_translucency';
10
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_transmission';
11
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_unlit';
12
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_materials_variants';
13
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_basisu';
14
+ import '@babylonjs/loaders/glTF/2.0/Extensions/KHR_texture_transform';
15
+ import '@babylonjs/serializers/glTF/2.0/Extensions/KHR_texture_transform';
16
+
17
+ // Babylon.js modules
18
+ // All used Babylyon.js modules should be re-exported here.
19
+ // In this way consumers have access to all of them as well via an import of "@combeenation/3d-viewer" instead of having
20
+ // to make single imports from "@babylonjs/..."
21
+ // When using Babylon.js modules inside the viewer repo make sure to import from the viewer root as well.
22
+ // E.g. `import { BaseTexture, Material, Node } from '../index';`
23
+ export * from '@babylonjs/core/abstractScene';
24
+ export * from '@babylonjs/core/Animations';
25
+ export * from '@babylonjs/core/assetContainer';
26
+ export * from '@babylonjs/core/Buffers';
27
+ export * from '@babylonjs/core/Cameras/arcRotateCamera';
28
+ export * from '@babylonjs/core/Cameras/camera';
29
+ export * from '@babylonjs/core/Culling';
30
+ export * from '@babylonjs/core/Debug/axesViewer';
31
+ export * from '@babylonjs/core/Debug/debugLayer';
32
+ export * from '@babylonjs/core/Engines/engine';
33
+ export * from '@babylonjs/core/Engines/thinEngine';
34
+ export * from '@babylonjs/core/Lights';
35
+ export * from '@babylonjs/core/Loading';
36
+ export * from '@babylonjs/core/Materials/material';
37
+ export * from '@babylonjs/core/Materials/PBR';
38
+ export * from '@babylonjs/core/Materials/standardMaterial';
39
+ export * from '@babylonjs/core/Materials/Textures';
40
+ export * from '@babylonjs/core/Maths';
41
+ export * from '@babylonjs/core/Meshes/abstractMesh';
42
+ export * from '@babylonjs/core/Meshes/geometry';
43
+ export * from '@babylonjs/core/Meshes/instancedMesh';
44
+ export * from '@babylonjs/core/Meshes/mesh';
45
+ export * from '@babylonjs/core/Meshes/meshBuilder';
46
+ export * from '@babylonjs/core/Meshes/transformNode';
47
+ export * from '@babylonjs/core/Misc/interfaces/screenshotSize';
48
+ export * from '@babylonjs/core/Misc/screenshotTools';
49
+ export * from '@babylonjs/core/Morph';
50
+ export * from '@babylonjs/core/node';
51
+ export * from '@babylonjs/core/Rendering/utilityLayerRenderer';
52
+ export * from '@babylonjs/core/scene';
53
+ export * from '@babylonjs/core/types';
54
+ export * from '@babylonjs/loaders/glTF/2.0/glTFLoader';
55
+ export * from '@babylonjs/serializers/glTF/2.0/glTFSerializer';
56
+
57
+ // Additional Babylon.js modules
58
+ // These are not used in the "@combeenation/3d-viewer" repository directly, but required in consuming code for various
59
+ // reasons
60
+ // for checking camera collions with ground and wall meshes
61
+ export * from '@babylonjs/core/Collisions';
62
+ // for Scene.createDefaultEnvironment
63
+ export * from '@babylonjs/core/Helpers/sceneHelpers';
64
+ // support BackgroundMaterial on Combeenation platform
65
+ export * from '@babylonjs/core/Materials/Background';
66
+ // support NodeMaterial on Combeenation platform
67
+ export * from '@babylonjs/core/Materials/Node';
68
+
69
+ // Viewer modules
70
+ // all viewer modules that are not located in "internal" should be exported from here
71
+ export * from './viewer';
72
+ export * from './viewer-error';
73
+ export * from './manager/camera-manager';
74
+ export * from './manager/debug-manager';
75
+ export * from './manager/event-manager';
76
+ export * from './manager/gltf-export-manager';
77
+ export * from './manager/material-manager';
78
+ export * from './manager/model-manager';
79
+ export * from './manager/parameter-manager';
80
+ export * from './manager/scene-manager';
81
+ export * from './manager/texture-manager';